Activity的生命周期

来源:互联网 发布:什么手机比较好 知乎 编辑:程序博客网 时间:2024/05/05 03:10

1.onCreate   ,onDestroy()

在 onCreate()中进行所有 的全局初始化,常常我们在里面完成 界面 的初始化,

在onDestroy()中,释放 所有 的资源 ,常常会调用 close()  and release(),只要进入 onDestroy(),将无法还原。


2.onStart()  onStop() ,是否可见 

这两个方法决定 了Activity是否可见 ,调用 了onStart()后,这个 Activity就是对用户可见 的,但是可见并不是等于可操作。onStopt()则让Activity对用户不可见 ,但是它 的状态 都保存着。只是系统 别的地方 内存不够时,会将其杀死。


3.onResume()  and onPause()  ,是否可操作

决定 这个 Activity是否可以操作,从onResume()开始 ,就可以操作了。一旦调用 了onPause()就不可以 操作了。但是此时Activity还是可见的。

例子:当操作的Activity遇到 AlertDilaog时,我们只能操作Dialog,但是不可以操作Activity,此时Activity 就是可见但是不可以操作,系统 调用 的是onPause,可以说明 ,Activity常常在onResume() 与onPause()之间切换。


4. onRestart()

在Activity进行了onStop()后,Activity不可见了,但是各种资源 和状态 还在,系统 不用再执行onCreate(),只用进行onRestart()就可以再开始这个 Activity.


package com.example.activitylifedemo;import android.os.Bundle;import android.widget.*;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.content.*;public class ActivityLifeDemo extends Activity {private String TAG="TAG";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_life_demo);Button btn =(Button)findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener(){public void onClick(View arg0) {Intent intent = new Intent (getBaseContext(),Activity1.class);startActivity(intent);}});Log.d(TAG, "A-------->onCreate");}public void onStart(){super.onStart();Log.d(TAG, "A-------->onStart");}public void onRestart(){super.onStart();   ///Log.d(TAG, "A-------->onRestart");}public void onPause(){super.onPause();Log.d(TAG, "A-------->onPause");}public void onResume(){super.onResume();Log.d(TAG, "A-------->onResume");}public void onStop(){super.onStop();Log.d(TAG, "A-------->onStop");}public void onDestroy(){super.onDestroy();Log.d(TAG, "A-------->onDestroy");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity_life_demo, menu);return true;}}

package com.example.activitylifedemo;import android.os.Bundle;import android.widget.*;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.content.*;public class Activity1 extends Activity {private String TAG="TAG";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity1);Button btn =(Button )findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener(){public void onClick(View v) {Intent intent = new Intent (getBaseContext(),ActivityLifeDemo.class);startActivity(intent );}});Log.d(TAG,"B------->onCreate");}public void onDestroy(){super.onDestroy();Log.d(TAG,"B------->onDestroy");}public void onStart(){  //可见 super.onStart();Log.d(TAG,"B------->onStart");}public void onStop(){  //不可见super.onStop();Log.d(TAG,"B------->onStop");}public void onResume(){  //可以 操作super.onResume();Log.d(TAG,"B------->onResume");}public void onPause(){  //不可操作super.onPause();Log.d(TAG,"B------->onPause");}public void onRestart(){  //onStop 后恢复Activitysuper.onStart();Log.d(TAG,"B------->onRestart");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.activity1, menu);return true;}}


0 0
原创粉丝点击