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