首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android 防止 Activity 被關閉:重寫 onBackPressed 攔截返回鍵

     編輯:程式設計疑難解答

場景

需在不修改框架代碼前提下,阻止用戶通過返回鍵關閉 Activity。

方案

@Override
public void onBackPressed() {
    // 1. 彈窗確認
    new AlertDialog.Builder(this)
        .setMessage("確定要退出?")
        .setPositiveButton("確定", (d, w) -> super.onBackPressed()) // 真正關閉
        .setNegativeButton("取消", null)
        .show();

    // 2. 或直接不調用 super.onBackPressed(),Activity 不會關閉
    // 3. 也可移動任務到後台:moveTaskToBack(true);
}

其他關閉途徑無法攔截

  • finish() 調用(代碼主動關閉)。
  • 系統回收(內存不足、用戶從最近任務滑掉)。
  • ActivityManager.killBackgroundProcesses。

以上屬於框架/系統行為,**不修改框架無法攔截**,只能在 onStop/onDestroy 做存檔/清理。

專注於「返回鍵攔截」這一可控入口,滿足大多數「防誤退出」需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved