[英]clearing stack of activities with just one press
我有一个启动Activity
A1,它具有一个启动Service
S1的启动按钮:
startButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Log.i(TAG1, "Starting Update Service");
startService(serviceIntentS1);
}
});
S1根据某些条件启动Activity
A2:
if (giveninteger>=2)
{
Intent intentA2= new Intent(this, A2.class);
// following line to avoid exception
intentA2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //to avoid exception
startActivity(intentA2);
}
A2订阅了S1,并且来自A2的用户可以借助S1定期查看更新的数据。 A2具有以下代码来停止S1服务:
public void onBackPressed() {
try {
Log.i(TAG2, "Killing Update Service");
stopService(serviceIntentS1);
} catch (NullPointerException e) {
Log.i(TAG3, "Service was not running " + e.toString());
}
finish();
System.exit(0);
return;
}
我的问题是,如果更新从A2运行10次,则用户必须按10次返回按钮才能退出Activity
A2。 也就是说,A2的实例累积在“ Activity
堆栈中。 我在从S1启动A2的过程中尝试了所有标志,但没有成功。 无论更新运行了多少次,我都想一按就退出Activity
A2。
任何建议都会有所帮助。
您需要的是A2的SingleInstance,因此无论启动A2的次数是多少,都只剩下一个实例,并且只需要按一次Back按钮即可。 在AndroidManifest文件中定义此属性。
<activity android:launchMode"singleInstance"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.