我的应用程序具有以下流动如何完成所有活动并在android中关闭应用程序?
首页 - >屏幕1->屏幕2->屏幕3->屏幕4->屏幕5>首页 - >屏幕2->首页 - >屏幕3
我的问题是,当我试图关闭应用程序时,Home活动会在我尝试关闭应用程序时每次打开。
我只想在用户在主屏幕上按下设备的后退键时关闭应用程序。
我的应用程序具有以下流动如何完成所有活动并在android中关闭应用程序?
首页 - >屏幕1->屏幕2->屏幕3->屏幕4->屏幕5>首页 - >屏幕2->首页 - >屏幕3
我的问题是,当我试图关闭应用程序时,Home活动会在我尝试关闭应用程序时每次打开。
我只想在用户在主屏幕上按下设备的后退键时关闭应用程序。
将android:noHistory="true"
添加到您的活动清单文件中。
我敢打赌,当他按下时他想回到前一个屏幕,但只有当他在主屏幕上时才关闭它们。 –
有2种方式为您解决问题
1)调用完成()后startActivity(意向),在每一个活动
2)设置机器人:在menifest文件中的每个标签launchMode =“singleInstance”
我想第二个办法是最好的解决问题,但你也可以使用第一种方式
你可以尝试用Intent.FLAG_ACTIVITY_CLEAR_TASK http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TASK
这很适合我在所有版本启动画面3。 关闭所有以前的活动如下:
Intent intent = new Intent(this, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // this will clear all the stack
intent.putExtra("Exit me", true);
startActivity(intent);
finish();
然后在HomeActivity onCreate()方法添加此完成在MainActivity
setContentView(R.layout.main_layout);
if(getIntent().getBooleanExtra("Exit me", false)){
finish();
return; // add this to prevent from doing unnecessary stuffs
}
这很适合我。
你应该使用FLAG_ACTIVITY_CLEAR_TASK
和FLAG_ACTIVITY_NEW_TASK
标志。
Intent intent = new Intent(SecondActivity.this, CloseActivity.class);
//Clear all activities and start new task
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
onCreate()
CloseActivity
活性的方法。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish(); // Exit
}
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);为我工作。 –
public void onBackPressed() {
super.onBackPressed();
finishAffinity();
System.exit(0);
}
可以是这种方法是更好地利用以关闭所有的活性和清洁设备存储器中。
要清除所有的活动,同时开辟新的一个然后执行以下操作:
Intent intent = new Intent(getApplicationContext(), YourActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
有时finish()
不工作
我已经解决了这个问题与
finishAffinity()
不要使用
System.exit(0);
它将完成应用程序而无需注册。
看到这个:http://stackoverflow.com/questions/4758462/android-finish-all-activities – Avijit