Завершите дочернюю активность, когда родительская активность остановится
В моей программе "А1" есть один вид деятельности. В A1 onCreate я использую намерение для вызова активности Android ("A2"):
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPickerIntent, 1010);
когда пользователь выбирает контакт, я хочу использовать информацию о контакте в A1. Все хорошо, но...
Когда я использую "кнопку домой" в стиле А2, А1 и А2 в памяти, и если ОС убивает А1 (или я могу сделать это из диспетчера задач), А2 все еще работает, и когда я запускаю свою программу, я вижу СТАРЫЙ А2, и когда я выбираю контакт, я не вижу результата в A1, потому что NEW A1 запущен, и он требует NEW A2.
Вопрос в том, как я могу убить А2, когда кто-то убивает А1 по памяти.
2 ответа
Вы можете просто вызвать finishActivity(CHILD_ACTIVITY_REQUEST_CALL) в методе onStop() вашего родительского действия.
В твоем случае:
public void onStop(){
finishActivity(1010);
}
Я не думаю, что вы спрашиваете, возможно.
Мой плохой, как указал nbarraille, это возможно. Однако то, что я скажу ниже, о том, как нужно работать с Android, все еще идет.
Более важно, однако, то, что это не то, что вы должны делать при работе с системой Android. Если вы немного прочитали о действиях и, в частности, о том, как работает жизненный цикл действий, вы должны получить некоторое представление об основах. Короче говоря, Android берет на себя всю ответственность за "убийство" действий, когда они больше не нужны (а другим выполняющимся действиям нужны ресурсы, которые они содержат).
Из того, что вы говорите в своем вопросе, нелегко сказать, что вызывает проблему, когда вы пытаетесь вызвать А2 при втором запуске А1, но я уверен, что у него нет ничего, что вы сами не делали ". убить А2.