Android presione la tecla de retorno dos veces para salir del programa

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

Supongo que te gusta

Origin blog.csdn.net/lizebin_bin/article/details/49824447
Recomendado
Clasificación