Как настроить активность на Android? - PullRequest
0 голосов
/ 31 мая 2019

Я хочу установить кнопку onBackPress для запуска действий, которые начались раньше обычного.Если я не закончу действия, начатые ранее, когда я начну другое действие, я смогу показать действие, начатое ранее, с помощью завершения () текущего действия.Это возможно.Потому что я не заканчиваю какую-либо деятельность.Так что завершение текущей активности приведет к показу активности, которая началась раньше.Но ОЗУ будет перегружено, когда я открою 50 видов деятельности.Поэтому из-за этой проблемы мне нужно завершить действие (), которое началось раньше.С другой стороны, я хочу начать задание, начатое раньше, по порядку при нажатии кнопки «Назад».Например,

   ActivityA --> ActivityB --> ActivityC --> ActivityD

В этом сценарии я закончу ActivityA, ActivityB, ActivityC по порядку.Но я хочу запустить ActivityC при повторном нажатии ActivityD, и я хочу запустить ActivityB при повторном нажатии ActivityC.

Наконец, у меня есть сложный путь в приложении.И я перехожу к ActivityD, и я завершил ActivityF, когда моя текущая активность - ActivityF

 ActivityF --> ActivityD
 ActivityF finished

Текущая активность:

 ActivityD

В этом сценарии я хочу запустить ActivityF некнопка ActivityC на задней панели ActivityD.

Обычно:

 ActivityA --> ActivityB --> ActivityC --> ActivityD /// click back button
 ActivityA --> ActivityB --> ActivityC /// click back button
 ActivityA --> ActivityB /// click back button
 ActivityA

или

 ActivityA --> ActivityF --> ActivityD /// click back button
 ActivityA --> ActivityF /// click back button
 ActivityA

Но я хочу создать такой сценарий:

 ActivityA
 --> ActivityB
 --> ActivityC
 --> ActivityD /// click back button
 ActivityC <-- /// click back button
 ActivityB <-- /// click back button
 ActivityA 

или

 ActivityA
 --> ActivityF
 --> ActivityD /// click back button
 ActivityF <-- /// click back button
 ActivityA <--

Обновление:

Я нашел решение здесь

Ответы [ 2 ]

0 голосов
/ 31 мая 2019
Intent i = new Intent(F.this, A.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

или

Intent i = new Intent(F.this, A.class);
startActivity(i);
finish();
0 голосов
/ 31 мая 2019

В Деятельности А сделайте это,

startActivity(new Intent(ActivityA.this, ActivityB.class));
    finish();

Это закончится ActivityA при переходе к занятию Б.

Далее, в ActivityB переопределите onBackPressed в своем классе Activity и используйте намерение вернуться к предыдущему действию.

@Override
public void onBackPressed() {
startActivity(new Intent(ActivityB.this, ActivityA.class));
finish();
}

Примечание: * ** 1013 1014 * Если вы не переопределите onBackPressed, то он перейдет в действие до ActivityA (если недоступно, выйдите из приложения).

Ссылки, которые могут помочь вам начать работу с жизненным циклом Activity:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...