我有一个由25个活动组成的应用程序。我最近添加了退出按钮以退出应用程序,但它根本不起作用。
我已经尝试过fininsh()那个活动,但这需要我以前的活动。 我甚至试图制作自己的背板,但是在退出应用程序时显示所有活动,这些应用程序在退出时显示它们在退出应用程序之前只有几分之一秒。 甚至已经阅读了这篇完整的文章,但似乎没有任何帮助
http://developer.android.com/training/implementing-navigation/ancestral.html
答案 0 :(得分:3)
这可能是解决问题的黑客行为。但我刚刚制作了一个应用程序并测试了我的代码,它运行正常。
您需要创建一个名为QuitActivity的新活动或任何您想要命名的活动,当您想要完成应用程序或退出应用程序时,您必须使用此代码启动该活动
Intent i = new Intent(getApplicationContext(), QuitActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
this.finish();
然后这是我的退出活动代码,它只会在清除逆向堆栈后自行关闭,以便您的应用程序退出。
public class QuitActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.finish();
}
}
答案 1 :(得分:0)
尝试此操作..点击按钮
Intent intent = new Intent(YourCurrentClass.this, HomeClass.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
答案 2 :(得分:0)
实现一个Custom BroadCastReceiver并在每个活动中注册它。当您点击退出按钮sendBroadcast到该特定自定义意图时。多数民众赞成。
答案 3 :(得分:0)
尝试仅键入System.exit(0);
或创建静态布尔值needToExit;
设置needToExit = true;
你打电话的地方
finish();
System.exit(0);
在所有其他活动中覆盖onresume
public void onResume(){
super.onResume();
if (MySettingsClass.needToExit){
finish();
System.exit(0);
return;
}
//your other code;
}