有时候我们需要对自己的Activity的生命周期进行监控,比如说手势密码,当满足条件后,需要把手势密码界面覆盖上去,Android 在4.0之后提供了

ActivityLifecycleCallbacks
这个借口提供了应用所有Activity的生命周期回调,用法如下:

public class MyApplication extends Application {    private  int resumed;    private  int paused;    @Override    public void onCreate() {        super.onCreate();        this.registerActivityLifecycleCallbacks(new MyActivityLifecycleCallbacks()) ;    }    class MyActivityLifecycleCallbacks implements ActivityLifecycleCallbacks    {        @Override        public void onActivityCreated(Activity activity, Bundle bundle) {            Log.e("Activity", activity.getClass().getSimpleName()+"onActivityCreated");        }        @Override        public void onActivityStarted(Activity activity) {            Log.e("Activity",activity.getClass().getSimpleName()+"onActivityStarted");        }        @Override        public void onActivityResumed(Activity activity) {            Log.e("Activity",activity.getClass().getSimpleName()+"onActivityResumed");            resumed++ ;        }        @Override        public void onActivityPaused(Activity activity) {            Log.e("Activity",activity.getClass().getSimpleName()+"onActivityPaused");            paused++ ;        }        @Override        public void onActivityStopped(Activity activity) {            Log.e("Activity",activity.getClass().getSimpleName()+"onActivityStopped");        }        @Override        public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {            Log.e("Activity",activity.getClass().getSimpleName()+"onActivitySaveInstanceState");        }        @Override        public void onActivityDestroyed(Activity activity) {            Log.e("Activity",activity.getClass().getSimpleName()+"onActivityDestroyed");        }       /* public boolean isApplicationInForeground() {            // 当所有 Activity 的状态中处于 resumed 的大于 paused 状态的,即可认为有Activity处于前台状态中            return resumed > paused;        }*/    }}
在Application中实现这个接口,我们在启动MainActivity的时候打印日志:

 E/Activity: MainActivityonActivityCreated E/Activity: MainActivityonActivityStarted E/Activity: MainActivityonActivityResumed
然后在MainActivity中启动第二个Activity:


 E/Activity: MainActivityonActivityPaused E/Activity: SecondActivityonActivityCreated E/Activity: SecondActivityonActivityStarted E/Activity: SecondActivityonActivityResumed E/Activity: MainActivityonActivitySaveInstanceState E/Activity: MainActivityonActivityStopped
 第二个Activity 的生命周期依次打印,使用起来是非常的简便。


更多相关文章

  1. Android(安卓)开发学习笔记(一)—— 四大组件
  2. Android中判断状态栏是否存在
  3. android 中如何获取camera当前状态
  4. Android使用ethtool工具查询/设置以太网网卡状态
  5. 控制状态栏、导航栏、实现沉浸式模式
  6. Android(安卓)AMS(三) App启动过程之onResume
  7. Android(安卓)wifi框架
  8. Android(安卓)下拉刷新仿微博刷新展示
  9. 高度状态栏Android获取状态栏的高度高度状态栏

随机推荐

  1. Android瀑布流 & 仿Win8的metro的UI界面
  2. Get things ready to develop android ap
  3. Android官方技术文档翻译—— Eclilpse项
  4. Android:UI更新方法四:在Worker Thread中
  5. android Java代码的启动
  6. 新建android工程 没有R.java文件
  7. Android应用程序显示欢迎画面并开机自启
  8. Android调起高德地图
  9. Android(安卓)Timer的用法示例
  10. 自定义控件--虚线