在Application注册对该应用Activity的监听

package com.example.test.app;import android.annotation.SuppressLint;import android.app.Activity;import android.app.Application;import android.os.Bundle;public class MyApplication extends Application{    @SuppressLint("NewApi") @Override    public void onCreate()    {        super.onCreate();        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks()        {            @Override            public void onActivityStopped(Activity activity)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivityStopped");            }            @Override            public void onActivityStarted(Activity activity)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivityStarted");            }            @Override            public void onActivitySaveInstanceState(Activity activity, Bundle outState)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivitySaveInstanceState");            }            @Override            public void onActivityResumed(Activity activity)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivityResumed");            }            @Override            public void onActivityPaused(Activity activity)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivityPaused");            }            @Override            public void onActivityDestroyed(Activity activity)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivityDestroyed");            }            @Override            public void onActivityCreated(Activity activity, Bundle savedInstanceState)            {                System.out.println("======>>>>>>" + activity.getClass().getCanonicalName() + " onActivityCreated");            }        });    }}

两个Activity

package com.example.test;import android.app.Activity;import android.content.Intent;import android.os.Bundle;public class MainActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        startActivity(new Intent(this, SecondActivity.class));    }}
package com.example.test;import android.app.Activity;import android.os.Bundle;public class SecondActivity extends Activity{    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);    }}

打开应用MainActivity然后进入SecondActivity,生命周期的监听打印如下:

03-21 15:09:53.225: I/System.out(4289): ======>>>>>>com.example.test.MainActivity onActivityCreated03-21 15:09:53.245: I/System.out(4289): ======>>>>>>com.example.test.MainActivity onActivityStarted03-21 15:09:53.245: I/System.out(4289): ======>>>>>>com.example.test.MainActivity onActivityResumed03-21 15:09:53.275: I/System.out(4289): ======>>>>>>com.example.test.MainActivity onActivityPaused03-21 15:09:53.315: I/System.out(4289): ======>>>>>>com.example.test.SecondActivity onActivityCreated03-21 15:09:53.315: I/System.out(4289): ======>>>>>>com.example.test.SecondActivity onActivityStarted03-21 15:09:53.315: I/System.out(4289): ======>>>>>>com.example.test.SecondActivity onActivityResumed03-21 15:09:53.590: I/System.out(4289): ======>>>>>>com.example.test.MainActivity onActivitySaveInstanceState03-21 15:09:53.590: I/System.out(4289): ======>>>>>>com.example.test.MainActivity onActivityStopped

可以在通过监听各个Activity做一些统计性的工作,比如多少个Activity处于resume状态,统计Acitivity使用情况等。再比如每个Activity在每个onCreate时候将其放进集合,在要退出程序的时候,通过扫描集合,挨个finish()
square leakcanary工具即使用onActivityDestroyed回调+weakRefence+refrenceQueue判断Activity有没有泄露。(PS:这个是听别人说的,想想确实能做到)

更多相关文章

  1. Android学习之Activity生命周期文档翻译
  2. Android应用程序的生命周期
  3. 测试横竖屏切换时activity 的生命周期
  4. Android运用AIDL技术实现实时更新MP3播放器的播放进度
  5. Android Activity生命周期图解
  6. android Activity 应用程序 生命周期
  7. 16_Android生命周期再介绍,通过androidconfigChanges属性让界面旋
  8. Android多个Activity切换时其生命周期中的方法执行顺序
  9. Android中切换屏幕方向时Activity生命周期函数执行情况分析

随机推荐

  1. 利用virtualbox安装android系统
  2. Android(安卓)Fragment实现按钮间的切换
  3. LibGDX输入模块之振荡器
  4. 获取Android崩溃crash信息并写入日志发送
  5. 【React Native开发】React Native For A
  6. Android(安卓)Edittext获取焦点和失去焦
  7. android 5.0 安装APP 出现 Failure [INST
  8. Android/JAVA 针对时间戳转今天昨天前天,
  9. Android中TextSwitcher的功能与用法
  10. Android(安卓)OpenGL ES正方体纹理贴图(