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

Android Handler 在 onStop 後失效:移至 Application 或靜態持有

     編輯:程式設計綜合問答

Activity 銷毀重建導致 Handler 所屬 Looper 失效,Handler 為空。

解決方案

  1. 定義在 Application 子類:public Handler globalHandler = new Handler(Looper.getMainLooper());,全局唯一,隨進程生命週期。
  2. 靜態字段持有:static Handler sHandler = new Handler(Looper.getMainLooper());,需注意內存洩漏(移除回調)。
  3. onSaveInstanceState 保存狀態:重建時恢復邏輯而非直接依賴 Handler 實例。

推薦方案一,業務無關 UI 更新的消息分發最穩健。

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