You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用调用System.exit后自动重启问题求助

Android应用点击退出确认后自动重启的问题解决方法

我在应用中实现了一项功能:当用户点击返回键(onBackPress)时,会弹出对话框询问是否确认退出应用。用户点击确定后,本应直接关闭应用,但目前应用关闭后会自动重启并回到原界面。我使用的代码如下:

public void popExitDialog(Context context) { 
    final Dialog dialog = new Dialog( context ); 
    dialog.setContentView( R.layout.item_warn_exit ); 
    dialog.getWindow().setBackgroundDrawable( new ColorDrawable( Color.TRANSPARENT ) ); 
    Button Btn_Continue = dialog.findViewById( R.id.btn_Continue ); 
    Button Btn_Cancel = dialog.findViewById( R.id.btn_Cancel ); 
    ImageButton ib_CloseDialog = dialog.findViewById( R.id.ib_CloseDialog ); 
    dialog.show(); 
    ib_CloseDialog.setOnClickListener( v -> { dialog.dismiss(); } ); 
    Btn_Cancel.setOnClickListener( view -> { dialog.dismiss(); } ); 
    Btn_Continue.setOnClickListener( view -> { 
        AppCompatActivity appCompatActivity = new AppCompatActivity(); 
        appCompatActivity.finishAndRemoveTask(); 
        appCompatActivity.finishAffinity(); 
        System.exit( 1 ); 
    } ); 
}

嘿,我一眼就瞅出问题所在了!你在点击确认退出的时候犯了个关键错误:手动new了一个AppCompatActivity实例。这个新实例根本不是当前正在运行的Activity,它没有绑定到应用的任务栈里,所以你调用finishAndRemoveTask()、finishAffinity()这些方法完全是无效操作,最后用System.exit(1)强制异常退出,反而可能触发系统的进程重启机制,导致应用自动回到原界面。

正确的解决办法:

你需要操作当前正在活跃的Activity实例,而不是新建一个。修改Btn_Continue的点击事件代码即可:

Btn_Continue.setOnClickListener( view -> { 
    // 先判断传入的context是否是Activity实例
    if (context instanceof Activity) {
        Activity currentActivity = (Activity) context;
        // 关闭所有关联的Activity,清空任务栈
        currentActivity.finishAffinity();
        // 移除当前任务栈,避免系统重启后回到原界面
        currentActivity.finishAndRemoveTask();
        // 正常退出进程,用0表示正常退出,不要用1(1是异常退出标记)
        System.exit(0);
    }
    // 别忘了关闭对话框
    dialog.dismiss();
} );

额外注意事项:

  1. 调用popExitDialog方法时,一定要传入当前Activity的实例,比如在你的主Activity里调用popExitDialog(this);,不要传Application的context,否则强转Activity会失败。
  2. 永远不要手动创建Activity实例,Activity的生命周期完全由Android系统管理,手动new出来的实例没有任何实际作用,还会引发各种奇怪的问题。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:17:47