為什么需要一個全局的 (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