Android Activity lifecycle 生命周期
理解Activity生命周期,有助于在开发软件的过程正确处理逻辑。
仅供自己理解参考
完美解说http://blog.csdn.net/android_tutor/article/details/5772285
package com.test;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
/**
*
* @author xxq
*
*/
// 一个Activity一般有如下四个状态
// 1.如果一个Activity在屏幕是可视的(在Activity栈顶),那么它是活跃运行的
// 2.如果一个Activity在屏幕上仍可视但是已失去焦点(如一个不是全屏显示的Activity占据Activity栈顶),那么它将转为pause状态,一个
// paused Activity仍然是存活着(它持有所有信息,并且仍受window manager管理)
// 3.如果一个Activity完全被另外一个Activity遮蔽(即前者对用户完全不可视),那么它会转为stop状态(它仍持有所有信息),但是该Activity
// 有可能在内存告急情况下会被杀死
// 4.如果一个Activity处于stop或者是pause状态,那么系统能够移除该Activity,通过请求Activity自行结束或直接杀死该进程
// 如何停止在pause状态,不让其进入stop状态,这点没有实现
// 操作一: 启动该程序,oncreate -> onstart ->onresume
// 操作二: 按Home键, onpause -> onstop
// 操作三: 长按Home键,出现最近运行程序,点击Home键,然后点击该程序 onrestart -> onstart -> onresume
public class Main extends Activity {
private final static String TAG = "Main";
EditText editText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(TAG, "onCreate");
}
// 当Main对用户可见时被调用
protected void onStart() {
Log.d(TAG, "onStart");
super.onStart();
}
// 当Main开始与用户交互时被调用,此时Main位于
// 其中Activity的栈顶,onPause()方法往往在onResume()滞后被调用
protected void onResume() {
Log.d(TAG, "onResume");
super.onResume();
}
// 当要恢复先前的Activity时被调用(或按Home,BackSpace),通常在这里实现数据的持久化
// 这个函数要尽可能快的返回,要恢复的Activity在返回onPause()才能被调用
protected void onPause() {
Log.d(TAG, "onPause");
super.onPause();
}
// 当Main不再对用户可视被调用,可能的原因1.恢复先前Activity 2.按Home 3.按Back键关闭软件
protected void onStop() {
Log.d(TAG, "onStop");
super.onStop();
}
// 恢复之前停止(onStop())的Activity会被调用
protected void onRestart() {
Log.d(TAG, "onRestart");
super.onRestart();
}
// 当Activity被destroy最后一个被调用的方法。
// 1.activity执行完了,显式调用finish()方法
// 2.系统暂时破坏这个Activity的实例来释放空间
// 3.人为主动关闭该软件
protected void onDestroy() {
// Log.d(TAG, isFinishing() + "");
Log.d(TAG, "onDestroy");
super.onDestroy();
}
} 相关推荐
xjp 2020-05-28
fengyeezju 2020-01-11
xilove0 2020-01-10
ALiDan 2019-12-16
JunkChen 2011-09-15
dingguagua 2013-07-23
缘来如此 2013-08-30
lihaoxiang 2019-11-14
Andrew的杂记 2010-10-07
luoj 2011-01-28
满城风絮 2011-09-09
doyouhaveIET 2011-08-31
Mexican 2011-08-31
Rgenxiao 2011-08-29
kangtingting0 2011-08-29
luoj 2011-08-23
西木 2011-08-17