本文COPY于:
https://www.w3cschool.cn/android/android-acitivities.html
Android 的 Activity 活动流程 如下图:
Activity 类定义了下面的回调。你可以不用实现所有的回调方法。
但了解其中的每一个非常的重要,实现这些可以保证你的应用行为如用户所期望的那样。
onCreate()
这是第一个回调,在活动第一次创建是调用
onStart()
这个回调在活动为用户可见时被调用
onResume()
这个回调在应用程序与用户开始可交互的时候调用
onPause()
被暂停的活动无法接受用户输入,不能执行任何代码。当当前活动将要被暂停,上一个活动将要被恢复是调用
onStop()
当活动不在可见时调用
onDestroy()
当活动被系统销毁之前调用
onRestart()
当活动被停止以后重新打开时调用
写测试类,用IDE自动生成一个最简单的样例,在启动页面补全以上回调,用Log.d()方法用来生成日志信息
String msg = "Android : ";
/** 当活动第一次被创建时调用 */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, "The onCreate() event");
}
/** 当活动即将可见时调用 */
@Override
protected void onStart() {
super.onStart();
Log.d(msg, "The onStart() event");
}
/** 当活动可见时调用 */
@Override
protected void onResume() {
super.onResume();
Log.d(msg, "The onResume() event");
}
/** 当其他活动获得焦点时调用 */
@Override
protected void onPause() {
super.onPause();
Log.d(msg, "The onPause() event");
}
/** 当活动不再可见时调用 */
@Override
protected void onStop() {
super.onStop();
Log.d(msg, "The onStop() event");
}
/** 当活动将被销毁时调用 */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, "The onDestroy() event");
}
/**当活动重新启用时*/
@Override
protected void onRestart() {
super.onRestart();
Log.d(msg,"The onRestart() event");
}
刚启动时:
The onCreate() event
The onStart() event
The onResume() event
当按Home键最小化当前应用回到主屏幕时:
The onPause() event
The onStop() event
当点击Menu(注意这时应用在后台),列出所有后台应用,重新启动当前应用时:
The onReStart() event
The onStart() event
The onResume() event
当点击后退关闭应用
The onPause() event
The onStop() event
The onDestroy() event
当在该Activity活动时,点击Menu时,效果和按HOME时一样
The onPause() event
The onStop() event
这时在Menu列表中点关闭该应用
这时产生了一个疑问?
我人个感觉应该会触发
The onDestroy() event
但我的测试样例中没有产生任何的输出,好奇怪?
有知道的人请告诉下!!!