Как вернуться к основной деятельности в Android?

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

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

Попробуйте это на вас onBackPressed:

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

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

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

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

Вы можете попробовать ActivityCompat.finishAffinity и запустить MainActivity на вашей операции C.