Muchas aplicaciones tienen la opción de salir del programa presionando dos veces la tecla de retorno, de hecho es muy simple, esto se logra mediante la transmisión.
Primero defina una BaseActivity, de modo que todas las actividades hereden de esta clase, defina una clase receptora de transmisión en esta clase y termine () después de recibir la transmisión, para que todas las actividades tengan este método para recibir la transmisión, y todas el final ha terminado.
Registre la transmisión en el método onResume (), cancele la transmisión cuando se destruya esta clase, recuerde destruir, de lo contrario seguirá ocupando la memoria del sistema.
public class BaseActivity extends Activity {
BroadcastReceiver finishApplicationBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
finish();
}
};
protected void onResume() {
super.onResume();
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.gouchao");
this.registerReceiver(finishApplicationBroadcastReceiver, filter);
};
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
this.unregisterReceiver(finishApplicationBroadcastReceiver);
super.onDestroy();
}
}
Envíe una transmisión en la Actividad donde debe presionar la tecla de retorno dos veces para salir del programa.
// 连按两次退出应用
// 记录时间
private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (System.currentTimeMillis() - exitTime > 2000) {
Toast.makeText(MainActivity.this, "再按一次退出程序",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
exitApp();
}
}
return true;
}
//发送广播
public void exitApp() {
Intent intent = new Intent();
intent.setAction("com.example.gouchao");
this.sendBroadcast(intent);
}
Recuerde devolver verdadero en el método onKeyDown (); de lo contrario, presione la tecla de retorno una vez para volver a la actividad anterior directamente