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

Android 重寫返回鍵行為:moveTaskToBack 模擬 Home 鍵效果

     編輯:程式設計綜合問答

需求

按返回鍵不退出應用,而是將任務移至後台(類似音樂播放器按返回繼續播放)。

實現


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true); // 將整個任務棧移至後台
        return true; // 消費事件,不再傳遞
    }
    return super.onKeyDown(keyCode, event);
}

現代 API (Android 2.0+)


@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

替代方案:Service 後台播放

音樂播放邏輯應放在 Service (前台服務) 中,Activity 僅作控制界面。按返回銷毀 Activity 不影響 Service 播放,用戶從通知欄或最近任務恢復界面。

注意

  • moveTaskToBack 不銷毀 Activity,內存佔用保持,頻繁使用可能導致 OOM。
  • Android 10+ (API 29) 手勢導航下返回鍵行為一致。
  • 若需真正退出,調用 finishAffinity() (API 16+) 清除任務棧。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved