android-activity start from where it closed when I exit the app
在MainActivity中,我有关闭应用程序的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @Override public void onBackPressed() { if (exit){ Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); super.onBackPressed(); }else { exit = true; new Handler().postDelayed(new Runnable() { @Override public void run() { exit = false; } }, 3 * 1000); } |
当我想要关闭应用程序时,我应该按2后退按钮。
问题是,当我关闭应用程序时,它从另一个活动开始,主要来自我去过的最后一个活动。
我怎样才能始终从mainActivity开始活动而不是其他活动?
使用这些代码行..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | @Override public void onBackPressed() { super.onBackPressed(); if (exit){ Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME); finish(); }else { exit = true; new Handler().postDelayed(new Runnable() { @Override public void run() { exit = false; } }, 3 * 1000); } } |
尝试launchMode:singleTask或singleInstance
1 2 3 | <activity android:name=".MainActivity" android:launchMode="singleInstance"> |
在自动启动活动的每个/中写下这部分代码,
1 2 3 4 | @Override public void onBackPressed() { YourActivityName.this.finish(); } |
覆盖MainActivity的onBackPressed方法,如下所示
1 2 3 4 5 6 7 8 | private int backpressedCount; @Override public void onBackPressed() { backpressedCount++; if (backpressedCount == 2) { android.os.Process.killProcess(android.os.Process.myPid()); } } |
当你关闭你的应用程序时,你必须杀死所有的活动,看看这个如何杀死一个包含其所有活动的应用程序?