I want to show a simple toast, when exiting an application. The problem is, that the toast is not shown. I assume it is because the acitivity is finished or because of
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();
}
};
It is advisable that you call finish to close your application rather than calling System.exit(0);
since this approach will kill your application completely.System.exit()
kills your entire process.
finish()
just hides, stops and destroys your activity. Your process is still running.
You can just use finish();
to close your activity and this should solve your problem.
http://groups.google.com/group/android-developers/browse_thread/thread/63de8a9cdffa46a3?pli=1