Android: показать тост после завершения приложения / активности - PullRequest
5 голосов
/ 13 сентября 2010

Я хочу показать простой тост при выходе из приложения.Проблема в том, что тост не показан.Я предполагаю, что это потому, что активность закончена или из-за System.exit(0), но я не знаю, как ее решить.У кого-нибудь есть совет?Спасибо !!

В своей деятельности у меня есть следующий код:

Toast.makeText(this,"Exit application.",Toast.LENGTH_SHORT).show();
exitApp();

public void exitApp (){
  App.getInstance().exit();
  finish();
}

И выход из метода в приложении:

public void exit() {
   System.exit(0);
}

Ответы [ 2 ]

4 голосов
/ 13 сентября 2010

Желательно, чтобы вы вызывали финиш, чтобы закрыть приложение, а не вызывали System.exit(0);, так как этот подход полностью убил бы ваше приложение. System.exit() убивает весь ваш процесс.finish() просто скрывает, останавливает и уничтожает вашу деятельность.Ваш процесс все еще выполняется.

Вы можете просто использовать finish();, чтобы закрыть свою деятельность, и это должно решить вашу проблему.

http://groups.google.com/group/android-developers/browse_thread/thread/63de8a9cdffa46a3?pli=1

0 голосов
/ 03 июня 2011

Я только что запустил новый поток, чтобы дать время Toast показать, прежде чем системный процесс будет убит.Проверьте это:

private Runnable checkForAdBlockRun = new Runnable() {
    @Override
    public void run() {
        boolean blocked = false;
        try {
            blocked = AdBlockUtil.areAdsBlocked();
            if (blocked) {
                Log.w(TAG, "Ads are blocked on this device.");
                adBlockHandler.sendEmptyMessage(0);

            }
        }
        catch (Exception e) {
            Log.w(TAG, "Could not check for ad blocking", e);
        }
    }
};

private Handler adBlockHandler = new Handler() {
    @Override
    public void handleMessage(Message message) {
        Toast.makeText(instance, "Can not run this app with adblock on", Toast.LENGTH_LONG).show();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(3000);
                }
                catch (Exception e) { }
                System.exit(0);
            }
        }).start();
    }
};
...