Как закончить упражнение из другого занятия - PullRequest
7 голосов
/ 04 ноября 2011

Если действие A связано с задачей T1, а действие B связано с задачей T2, как я могу завершить действие A из действия B?

Мне это нужно, потому что мое приложение может быть запущено с его ярлыка или уведомлений.

Ответы [ 4 ]

3 голосов
/ 04 ноября 2011

В то время как другие подходы могут работать, один из тех, которые кажутся мне наиболее простыми, - это отправка намерения другому действию, которое предписывает ему завершить себя. Эта деятельность, после получения этого намерения, вызывает finish ().

2 голосов
/ 07 июля 2012

Мне нужна была та же информация, и я поэкспериментировал с тем, что было сказано здесь. Я придумал это.

 Intent intent = new Intent(MainActivity.this,HighScoresActivity.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
                        startActivity(intent);

Измените действия в соответствии с вашими потребностями, но FLAG_ACTIVITY_CLEAR_TOP удалит другие действия из стека.

1 голос
/ 05 ноября 2011

Другой альтернативой может быть вызов действия B с флагом очистки верхней части из вашего обработчика уведомлений, например,

Intent intent = new Intent(context, HomeActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);       
context.startActivity(intent);

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

Если установлено, и запускаемое действие уже выполняется в текущей задаче, тогда вместо запуска нового экземпляра этого действия все остальные действия над ним будут закрыты, и это намерение будет доставлено в (теперь сверху) старая активность как новый Намерение.

0 голосов
/ 04 ноября 2011

Я не уверен, что было бы лучшим подходом, но один из подходов мог бы состоять в том, чтобы передать действие A в одиночный код, извлечь его из B и выполнить на нем final () ...

...