全局获取 (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
直面挑战,躬身入局