我需要退出我的应用程序,我已经引用了Stack Overflow和其他网站上的所有链接,我使用了finishAffinity()
,finish()
,System.exit(0)
仍然无法使用实现它。我在主要活动中重写onBackPressed方法并终止应用程序。
实际上,当我启动应用程序后按下后退按钮时,它工作正常。但是,当我继续进行其他活动并回到MainActivity时,它无法正常工作。如果我使用finishAffinity()
,它会打开我的Camera Activity,这是我在项目中的一个Activity。如果我使用finish()
,则会打开我的第二页活动。
我会发布我的代码以供参考。
MainActivity.Java
@Override
public void onBackPressed()
{
if (back_pressed + 2000 > System.currentTimeMillis())
{
Log.e("called", "back pressed");
finish();
}
else {
Toast.makeText(getBaseContext(), "Press twice to exit!", Toast.LENGTH_SHORT).show();
}
back_pressed = System.currentTimeMillis();
}
答案 0 :(得分:4)
每当您希望退出所有打开的活动时,您应按下一个按钮,该按钮会加载应用程序启动时运行的第一个活动,然后清除所有其他活动,然后完成最后剩余的活动。这样做在你的项目中应用以下代码
Intent intent = new Intent(getApplicationContext(), FirstActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
上述代码完成除FirstActivity之外的所有活动。然后我们需要完成FirstActivity' s在Firstactivity的oncreate中输入以下代码
if (getIntent().getExtras() != null && getIntent().getExtras().getBoolean("EXIT", false)) {
finish();
}
你完成了......