3

У меня есть MainActivity «A», у которых есть кнопка, запускающая активность «B», а на активность «B» есть еще одна кнопка, запускающая активность «C». В действиях B и C оба метода onBackPressed(), который появляется AlertDialog с вопросом, хочет ли пользователь вернуться к MainActivity. Если они нажмут «да», программа должна показать MainActiviy.как вернуться к основной деятельности в Android?

Возникает вопрос: в деятельности B, я не имею проблему, просто вызовите метод finish(), и появляется MainActivity, но проблема заключается в активности C, если я называю finish() метод, программа возвращается к деятельности В. Как вернуться к MainActivity от деятельности C ??

ответ

3

попробовать это на вас onBackPressed:

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

это очищает стек деятельности и открывает ваше основное действие. Независимо от того, какой вы активны, вы всегда возвращаетесь к основному виду деятельности, а все остальные действия удаляются из стека.

+0

работал !! благодаря!! –

2

Используйте следующее в вашем файле манифеста для деятельности B и C:

<activity android:name=".ActivityB" 
      android:parentActivityName=".MainActivity"/> 
<activity android:name=".ActivityC" 
      android:parentActivityName=".MainActivity"/> 
0

Вы можете попробовать ActivityCompat.finishAffinity и начать MainActivity в вашей деятельности С.