全局獲取 (Activity)Context,實現全局彈出 Dialog


為什么需要一個全局的 (Activity)Context

  • 需求1:在進入 app 的時候,要求做版本檢測,有新的版本的時候,彈出一個 AlertDialog,提示用戶版本更新
  • 需求2:從別的設備擠下來的時候,不論當前 activity 是哪個,都能彈出來 AlertDialog(其實可以通過廣播實現)
  • 需求3:服務器發來類似微信在電腦端登錄的提示,彈出來確認 activity 。

使用 Dialog 的時候,為什么不可以使用 (Application)Context

  • 使用 (Application)Context 會拋出 BadTokenException 的異常。

ActivityLifecycleCallbacks 獲取當前的 Activity

  • Android 4.0 開始提供了一個接口 ActivityLifecycleCallbacks,可以監聽 Activity 的生命周期,通過接口的回調方法可以判斷當前的 acitivity 是哪個

實現全局的 (Activity)Context,實現全局彈出 Dialog

  • 在 Application 中實現 ActivityLifecycleCallbacks 接口,在回調方法 onActivityStarted(Activity activity) 中獲取到當前的 activity 、然后每次需要在彈出 Dialog 的時候,直接從 Application 中獲取。

https://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html
http://blog.csdn.net/a940659387/article/details/52473455


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM