Android中Activity生命周期

对于今天所学的Activity生命周期做一个简单的总结。

要理解下图的真正含义(本张图来自http://developer.android.com/reference/android/app/Activity.html):



          以上共有onCreate(),onStart(),onResume(),onPause(),onStop,onDestory(),onRestart()这7个回调函数,当一个activity启动时首先调用的是onCreate()->onStart()->onResume(),这是毋庸置疑的,那么何时会调用onPause(),onStop()呢?

现在来假设一个OldActivity,和NewActivity,当从OldActivity中跳转至NewActivity时,OldActivity会进去Pause状态,继而NewActivity会进入Create,Start,Resume状态,之后OldActivity就会进入Stop状态;按返回键时从NewActivity返回OldActivity,NewActivity会Pause,OldActivity会Restart,Start,Resume,之后NewActivity进入Stop,最后就会被Destory。

总结以上的规律,当启动新的Activity时,当前的Activity会暂停当前的活,做别的事,当别人的活干完后,继续自己的事。

当按home键时,当前的Activity会pause,stop,但是不会destory;如果进程被杀死,再通过home进入会重新来过,从onCreate开始。。。


源程序如下:


public class OldActivity extends Activity {


private Button btn1;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


this.btn1 = (Button) findViewById(R.id.btn1);
this.btn1.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub


Intent intent = new Intent(OldActivity.this,
NewActivity.class);
startActivity(intent);
}
});
Log.i("thm hello", "....onCreate");
}


@Override
protected void onDestroy() {


super.onDestroy();
Log.i("thm hello", "....onDestory");
}


@Override
protected void onPause() {


super.onPause();
Log.i("thm hello", "....onPause");
}


@Override
protected void onRestart() {


super.onRestart();
Log.i("thm hello", "....onRestart");
}


@Override
protected void onResume() {


super.onResume();
Log.i("thm hello", "....onResume");
}


@Override
protected void onStart() {


super.onStart();
Log.i("thm hello", "....onStart");
}


@Override
protected void onStop() {


super.onStop();
Log.i("thm hello", "....onStop");
}


}



public class NewActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_forturn);
Log.i("thm hello", "new onCreate");
}


@Override
protected void onDestroy() {


super.onDestroy();
Log.i("thm hello", "new onDestory");
}


@Override
protected void onPause() {


super.onPause();
Log.i("thm hello", "new onPause");
}


@Override
protected void onRestart() {


super.onRestart();
Log.i("thm hello", "new onRestart");
}


@Override
protected void onResume() {


super.onResume();
Log.i("thm hello", "new onResume");
}


@Override
protected void onStart() {


super.onStart();
Log.i("thm hello", "new onStart");
}


@Override
protected void onStop() {


super.onStop();
Log.i("thm hello", "new onStop");
}


}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值