我有一个启动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。
任何建议都会有所帮助。
答案 0 :(得分:1)
您需要的是A2的SingleInstance,因此无论A2启动的次数如何,只剩下一个实例,您只需按一次后退按钮。 在AndroidManifest文件中定义此属性。
<activity android:launchMode"singleInstance"/>