Activity生命周期监测接口-Application的ActivityLifecycleCallbacks接口

来源:互联网 发布:月相模拟软件 编辑:程序博客网 时间:2024/06/05 22:52

之前学习Activity的生命周期时,想打印出Activity的生命周期进行观察,我是这样做的...

 @Override    protected void onResume() {        super.onResume();        Log.v(TAG,"onResume--");    }

一直以为就只有这样才能看到生命周期...

后来发现,Application有一个registerActivityLifecycleCallbacks()方法可以ActivityLifecycleCallbacks接口来管理Activity生命周期,方便简洁.


新建一个BaseApplication集成Application:

public class BaseApplication extends Application {


在AndroidManifest.xml的application中添加:

<application        android:name=".BaseApplication"

实现它的onCreate()方法:

 @Override    public void onCreate() {        super.onCreate();    }

在onCreate()中调用它的registerActivityLifecycleCallbacks()方法:

public class BaseApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        this.registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {            @Override            public void onActivityCreated(Activity activity, Bundle bundle) {                Log.v(activity.toString(),"onActivityCreated--");            }            @Override            public void onActivityStarted(Activity activity) {                Log.v(activity.toString(),"onActivityStarted--");            }            @Override            public void onActivityResumed(Activity activity) {                Log.v(activity.toString(),"onActivityResumed--");            }            @Override            public void onActivityPaused(Activity activity) {                Log.v(activity.toString(),"onActivityPaused--");            }            @Override            public void onActivityStopped(Activity activity) {                Log.v(activity.toString(),"onActivityStopped--");            }            @Override            public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {                Log.v(activity.toString(),"onActivitySaveInstanceState--");            }            @Override            public void onActivityDestroyed(Activity activity) {                Log.v(activity.toString(),"onActivityDestroyed--");            }        });    }}

在MainActivity中写上原始打印方法:

public class MainActivity extends AppCompatActivity {    private static final String TAG="MainActivity";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    protected void onResume() {        super.onResume();        Log.v(TAG,"onResume--");    }}


运行Demo,在控制台打印出:



点返回键,退出APP:


0 0
原创粉丝点击