您现在的位置: 主页 > QQ黑客资讯 > QQ黑客空间 > 文章内容

学习整理盗QQ密码-Activity生命周期说明

作者: qq黑客 来源:未知 时间: 2014-02-26 阅读:
盗QQ密码-Activity生命周期说明
   Activity的四种状态:
 
  ⒈活动状态(Active or Running):也称为运行状态,处于Activity栈顶,在用户界面中最上层,完全能被用户看到,能够与用户进行交互;
 
  ⒉ 暂停状态(Paused):Activity失去焦点,Activity界面被部分遮挡,该Activity不再处于用户界面的最上层,且不能够与用户进行交互。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,与窗口管理器保持连接),但是在系统内存不够用的时候将被杀掉;
  ⒊停止状态(Stopped):Activity在界面上完全不能被用户看到,也就是说这个Activity被其他Activity全部遮挡,但它依然保持所有状态和成员信息,只是它不再可见,它的窗口被隐藏;
  ⒋非活动状态(Killed):当系统内存需要被用在其他地方的时候,一个停止状态的Activity被杀掉。
  如果一个Activity是Paused或者Stopped状态时可以被恢复,也可以被删除。一个被删除(杀掉)的Activity如果需要重新恢复就需要重启。
  当一个activity的当前状态发生改变时,当前activity就会触发一系列的回调方法。这些回调方法很明白的阐述了activity生命周期的变化过程。
 
  这些方法分别为:onCreat();onstart();onResume;onPause();onStop();onRestart();onDestroy();
 
二、生命周期图解说明
 
 
这张图,相信学习过android开发的大牛们都非常的熟悉了,但我还是图解一下:
 
1、当一个activity启动时,首先会调用onCreat();方法,然后调用onStart();方法,接下来调用onResume();方法。进入activity界面,此时的activity处于Running状态。
 
2、当一个不是全屏的activity被启动时(即当前activity被不完全遮住,dialog除外),那么当前activity首先会执行onPause();方法,当不是全屏的activity被从栈顶移除是,那么activity会执行onResume();方法。
 
3、当当前activity被新的activity完全覆盖时,或者按home回到主界面时,当前activity会执行,onPause(),onStop();方法,当回到当前activity时,会执行onRestart();onstart();onResume();方法。
 
4、当用户退出当前activity时会执行onPause();onStop();最后执行onDestroy();方法。
 
三、程序示例解释说明
 
 
复制代码
  1 package org.david.activitylifecycle;
  2 
  3 import android.os.Bundle;
  4 import android.app.Activity;
  5 import android.content.Intent;
  6 import android.util.Log;
  7 import android.view.View;
  8 import android.view.View.OnClickListener;
  9 import android.widget.Button;
 10 
 11 public class MainActivity extends Activity implements OnClickListener {
 12 
 13     private static final String TAG = MainActivity.class.getSimpleName();
 14     private Button btn_next, btn_halfActivity;
 15 
 16     @Override
 17     protected void onCreate(Bundle savedInstanceState) {
 18         super.onCreate(savedInstanceState);
 19         Log.i(TAG, "onCreate()");
 20         setContentView(R.layout.activity_main);
 21 
 22         // init---view
 23         btn_next = (Button) findViewById(R.id.btn_next);
 24         btn_halfActivity = (Button) findViewById(R.id.btn_halfActivity);
 25         btn_next.setOnClickListener(this);
 26         btn_halfActivity.setOnClickListener(this);
 27 
 28     }
 29 
 30     @Override
 31     public void onClick(View v) {
 32         switch (v.getId()) {
 33         case R.id.btn_next:
 34             Intent intent = new Intent(this, SecondActivity.class);
 35             startActivity(intent);
 36             break;
 37         case R.id.btn_halfActivity:
 38             Intent intent2 = new Intent(this,HalfActivity.class);
 39             startActivity(intent2);
 40             break;
 41 
 42         }
 43     }
 44 
 45     @Override
 46     protected void onStart() {
 47         super.onStart();
 48         Log.i(TAG, "onstart()");
 49     }
 50 
 51     @Override
 52     protected void onRestart() {
 53         super.onRestart();
 54         Log.i(TAG, "onRestart()");
 55     }
 56 
 57     @Override
 58     protected void onResume() {
 59         super.onResume();
 60         Log.i(TAG, "onResume()");
 61     }
 62 
 63     @Override
 64     protected void onPause() {
 65         super.onPause();
 66         Log.i(TAG, "onPause()");
 67     }
 68 
 69     @Override
 70     protected void onStop() {
 71         super.onStop();
 72         Log.i(TAG, "onStop()");
 73     }
 74 
 75     @Override
 76     protected void onDestroy() {
 77         super.onDestroy();
 78         Log.i(TAG, "onDestroy()");
 79     }
 80 
 81     @Override
 82     protected void onRestoreInstanceState(Bundle savedInstanceState) {
 83         super.onRestoreInstanceState(savedInstanceState);
 84         Log.i(TAG, "onRestoreInstanceState()");
 85     }
 86 
 87     @Override
 88     protected void onNewIntent(Intent intent) {
 89         super.onNewIntent(intent);
 90         Log.i(TAG, "onNewIntent()");
 91     }
 92 
 93     @Override
 94     protected void onSaveInstanceState(Bundle outState) {
 95         super.onSaveInstanceState(outState);
 96         Log.i(TAG, "onSaveInstanceState()");