监控android App Activity生命周期

说下场景:

1,监控当前应用生命周期

2,调试应用,接手一个庞大的应用,快速知道当前是那个activity ,或者 fragment(会在另一篇中讲)

3,如果你正常开发SDK ,当时你又想获取当前的页面的activity 

4,不修改源码即可在生命周期内添加自己的业务逻辑

当然你能难道app activity 生命周期,可以做很多业务,看我们自己怎么想了。

 

说了这么多, 今天要说的东西就是 Application    registerActivityLifecycleCallbacks

 

看下方法签名:

public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback);

 

这方法能监控整个app 的activity    所以在application 中,看下 Application.ActivityLifecycleCallbacks  

public interface ActivityLifecycleCallbacks {
    void onActivityCreated(Activity var1, Bundle var2);

    void onActivityStarted(Activity var1);

    void onActivityResumed(Activity var1);

    void onActivityPaused(Activity var1);

    void onActivityStopped(Activity var1);

    void onActivitySaveInstanceState(Activity var1, Bundle var2);

    void onActivityDestroyed(Activity var1);
}

位于Applicaiton内部类  是一个接口,只要接触过的android 的小姐姐,小哥哥们,是不是看着这些函数相当熟悉 。是不是涵盖activity  重要的生命周期函数 下面对应对比一下。

ActivityLifecycleCallbacks
Activity
onActivityCreated
onCreate
onActivityStarted
onStart
onActivityResumed
onResume
onActivityPaused
onPause
onActivityStopped
onStop
onActivitySaveInstanceStateonSaveInstanceState
onActivityDestroyed
onDestroy

通过这个表已经说明了一切,既然我们拿到Activity生命周期,其实就可以说在activity 可以插入我们想做的一切逻辑了;

写一个简单的例子比如我们想在 一个activity onCreate()函数中插入一个弹窗,那么此时你又拿不到这个这个Activity 怎么办

第一步  我们肯定只要要操作那个activity ,但是具体的类名不知道怎么办 ,我们通过app 直接操作,看日志输出你就可以得到当前activity 类的全路径名称了。 


 

第二步,我们既然能拿到activity 的类名,有知道了这个activity 的生命周期那就好办了。 剩下的工作就和平时弹窗一下,就是弹出dialog

 

这样就可以完成我们的需求了  ,睿智聪明的你我相信你已经明白怎么使用了!


版权声明:本文为tiandiyinghun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。