Creo que se puede utilizar Smth como este en su actividad para comprobar si se trata de la última :
private boolean isLastActivity() {
final ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> tasksInfo = am.getRunningTasks(1024);
final String ourAppPackageName = getPackageName();
RunningTaskInfo taskInfo;
final int size = tasksInfo.size();
for (int i = 0; i < size; i++) {
taskInfo = tasksInfo.get(i);
if (ourAppPackageName.equals(taskInfo.baseActivity.getPackageName())) {
return taskInfo.numActivities == 1;
}
}
return false;
}
Esto también requerirá añadir un permiso para su AndroidManifest.xml:
<uses-permission android:name="android.permission.GET_TASKS" />
Así, en su activty sólo se puede utilizar lo siguiente:
public void onBackPressed() {
if (isLastActivity()) {
showDialog(DIALOG_EXIT_CONFIRMATION_ID);
} else {
super.onBackPressed(); // this will actually finish the Activity
}
}
Luego, en el youd diálogo manejar el clic de botón de llama Activity.finish().
¿Estás seguro de que quieres hacer esto? Suena bastante molesto El usuario aprende rápidamente lo que significa volver atrás, y entiende que podría estar saliendo de la aplicación. –
¿Qué pasa con el voto negativo? Se dice claramente que hay que rechazar las preguntas que son "poco claras o no útiles", esto no es ninguna de las dos cosas. Puede que no sea la forma recomendada de hacer las cosas, pero no creo que esta pregunta deba rechazarse por eso. Votándolo nuevamente. – ShadowGod