6

我想在退出应用程序时显示一个简单的祝酒词。问题是,吐司没有显示出来。我认为这是因为活动已完成或因为System.exit(0),但我不知道如何解决它。有人有小费吗?谢谢!!

在我的活动中,我有以下代码:

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

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

App中的方法退出:

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

2 回答 2

4

建议您调用完成来关闭您的应用程序,而不是调用System.exit(0);,因为这种方法会完全杀死您的应用程序。System.exit()杀死你的整个过程。 finish()只是隐藏、停止和破坏你的活动。您的进程仍在运行。

您可以使用finish();来关闭您的活动,这应该可以解决您的问题。

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

于 2010-09-13T12:59:49.360 回答
0

I just fired off a new thread to allow time for the Toast to show before the system process is killed. Check it out:

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();
    }
};
于 2011-06-03T08:38:00.573 回答