Ваша проблема в следующих шагах, так как я знаю из вашего вопроса:
1.Создать уведомление после завершения загрузки
2. Основные действия будут вызываться при запуске
3. Вы нажали кнопку «Домой», чтобы основная активность была остановлена, но не уничтожила
4. Вы нажимаете на уведомление в строке состояния, чтобы ваш application will be resume
, чтобы у вас уже была основная активность в вашем заднем стеке, и уведомление будетсоздайте новое действие, как вы упомянули в своем вопросе. Деятельность NewNoteActivity будет возвращена в стек назад. ТАК на этом шаге you have two activities in back stack
5. Вы нажали кнопку назад, чтобы last activity will be destroy
и ваш main activity will be resume
Но вы хотитечтобы перейти на домашнюю страницу.
Итак, ваша проблема в следующих шагах, как я знаю из вашего вопроса:
1.Создать уведомление после завершения загрузки
2. Основные действиявызовет при запуске
3. Вы нажали кнопку «Домой», чтобы основное действие было остановлено, но не уничтожено
4.Вы нажимаете на уведомление в строке состояния so ваше application will be resume
, чтобы у вас уже была основная активность в вашем заднем стеке, и уведомление создаст новую активность, как вы упоминали в своем вопросе. Действия NewNoteActivity будут перенесены в задний стек. SO на этом шаге you have two activities in back stack
5. Вы нажали кнопку «Назад», чтобы last activity will be destroy
и ваше main activity will be resume
Но вы хотели открыть активность на домашней странице, когда нажимали кнопку «Назад» из действия NewNoteActivity.
Таким образом, решение заключается в том, что при нажатии кнопки «Назад» изВ своей активности NewNoteActivity вы снова запускаете основное действие с флагом Intent.FLAG_ACTIVITY_CLEAR_TOP
, чтобы ваше основное действие было воссоздано и получало метод onNewIntent()
, чтобы вы могли получить флаг и завершить основное действие, например,
1038 *
@Override
public void onBackPressed() {
Intent i = new Intent(this, Main.class);
i.putExtra("exit", true);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
super.onBackPressed();
}
Теперь вам нужно внедрить метод onNewIntent()
в основное занятие
При нажатии кнопки «Назад» из действия NewNoteActivity ваше основное действие вызовет метод onNewIntent()
, поэтому в этом методеВы должны получить флаговую переменную, которая передается из действия NewNoteActivity. Если выВы получите флаг, и если это правда, тогда просто завершите Основное действие, чтобы вы получили Главный экран.
РЕДАКТИРОВАТЬ
Вы говорите, что у вас есть какое-либо действие из A, B или C, и вы нажали кнопку назад, чтобы это действие было закрыто.Если у вас есть только одно действие в стеке, в это время ваше приложение будет закрыто, это означает, что вы получите домашний экран. Но если у вас более одного действия и вы нажали кнопку «Назад», у вас есть хотя бы одно действие в стеке, и теперь вы нажимаете науведомление, так что это откроет новую активность, связанную с вашим уведомлением, так что эта активность будет перенесена на нее в обратном стеке. Теперь, если вы нажали кнопку назад, ваша последняя активность, связанная с вашим уведомлением, будет закрыта, если вы не изменили onBackPressed() в этом действии, а затем он будет проверять задний стек, если какое-либо действие в заднем стеке будет возобновлено, или если в заднем стеке не будет никаких действий, тогда ваше приложение будет закрыто, и вы получите домашний экран