在Activity类之外监听Activity的生命周期
来源:互联网 发布:淘宝卖明星同款 编辑:程序博客网 时间:2024/05/21 00:46
我们都知道Activity的生命周期有几个非常常用的函数如oncreate,onresume,onpause,ondestroy,通常会在里面做一些初始化或者资源释放的操作。
如果在当前Activity类里做生命周期对应的操作的话,很方便。但是有一些我们封装好的通用的veiw,只传递进去了一个context进去。如果这个view需要在当前附着的activity的生命周期某个特定阶段去做一些事情的话,就会很尴尬。
一个思路是在这个view中,定义同样的生命周期函数,在引用view的activity的生命周期函数中对应的调用。但是这样显然太麻烦,改动量会很大。
无意中发现了一个简单方法:Application.registerActivityLifecycleCallbacks
它是统计监听整个APP中所有activity生命周期,我们可以在回调处获取到目标activity。
public interface ActivityLifecycleCallbacks {
void onActivityCreated(Activity activity, Bundle savedInstanceState);
void onActivityStarted(Activity activity);
void onActivityResumed(Activity activity);
void onActivityPaused(Activity activity);
void onActivityStopped(Activity activity);
void onActivitySaveInstanceState(Activity activity, Bundle outState);
void onActivityDestroyed(Activity activity);
}
使用案例:
(mActivity.getApplication()).registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState) { } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { //此处判断publiserBar附着的activity是否onresume if (mActivity != null && mActivity == activity) { do your Bussiness ... } } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState) { } @Override public void onActivityDestroyed(Activity activity) { } }); }
如果只想监听当前view附着activity切换到前台,还有一个方法
在当前view类中随便拎一个mView出来
mView.getViewTreeObserver().addOnWindowFocusChangeListener(new ViewTreeObserver.OnWindowFocusChangeListener() { @Override public void onWindowFocusChanged(boolean hasFocus) { } });
hasFocus为true和false有点类似于Activity的onResume和onPause函数
- 在Activity类之外监听Activity的生命周期
- 监听Activity的生命周期
- 监听Android所有Activity的生命周期
- Activity生命周期监听接口:ActivityLifecycleCallbacks
- BroadcastReceiver 启动activity(在activity之外启动一个activity)
- 引用activity之外的控件
- 开发小技巧之在Application中监听App中的Activity的生命周期
- 什么是Activity?Activity的生命周期!
- Activity及Activity的生命周期
- Activity的生命周期,activity跳转到activity
- Android中ActivityLifecycleCallbacks监听Activity们的生命周期
- android基础知识---ActivityLifecycleCallbacks监听Activity们的生命周期
- Android 使用ActivityLifecycleCallbacks监听自己应用Activity的生命周期
- 安卓app实现全局监听activity的生命周期
- Activity生命周期在Framework层的体现
- Activity在屏幕旋转时的生命周期
- activity在锁屏时候的生命周期
- 在Activity和Service之外使用handler
- [51nod 1287]加农炮
- 微信jssdk多图上传
- 关于Android系统开放所有App运用的权限
- iOS源码博文集锦1
- 使用命令行下载百度云盘的数据
- 在Activity类之外监听Activity的生命周期
- 扑克游戏(小根堆)
- sendRedirect和forward的区别
- Codeforces Gym 101174 B. Bribing Eve
- Java注解(Annotation)详解(二)——自定义注解
- 关于环境变量的作用
- Android MVP 解析+ 样例展示
- LeetCode 496 Next Greater Element I
- test1