У меня есть запуск 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);
}
А2 подписывается на S1, и с А2 пользователь может просматривать периодически обновляемые данные с помощью S1.А2 имеет следующий код для остановки службы 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;
}
Моя проблема в том, что, если обновление запускается 10 раз из А2, пользователь должен нажать кнопку назад 10 раз, чтобы выйти из Activity
А2.То есть экземпляры A2 накапливаются в стеке Activity
.Я перепробовал все флаги во время запуска A2 от S1, но безуспешно.Я хочу выйти из Activity
A2 одним нажатием, независимо от того, сколько раз выполняется обновление.
Любые предложения помогут.