首页 > 系统 > Android > 正文

Android Activity的生命周期详细介绍

2019-12-12 03:33:36
字体:
来源:转载
供稿:网友

Android Activity的生命周期详细介绍

生命周期描述的是一个类从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法。在这个过程中,会针对不同的生命阶段调用不同的的方法。

       Activity是Android中四大组件之一,是最常见的应用组件,也是用的最多的组件,它能够提供一个界面与用户进行交互。Activity从创建到销毁有多种状态,从一种状态到另一种状态时会激发相应的回调方法,这些回调方法包括:onCreate  onDestory  onStart  onStop  onResume  onPause。这些方法都是两两对应的,onCreate-->创建与onDestory-->销毁;onStart-->可见与onStop-->不可见;onResume-->可编辑(焦点)和onPause-->未获得焦点。最后还有一个方法是onRestart,这个方法在什么时候调用呢?当Activity被onStop后,但是并没有onDestory,即并没有被销毁时,用户重新回到当前Activity时,就调用onRestart方法,这里就不再是调用onCreate方法了。

public class MainActivity extends ActionBarActivity {   private final static String TAG = "MainActivity";   @Override   // Activity被创建时调用   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     Log.e(TAG, "onCreate.......");   }   @Override   // 该状态用户可见,但是用户还不能与之进行交互   protected void onStart() {     super.onStart();     Log.e(TAG, "onStart.......");   }   @Override   // 该状态是Activity获得用户焦点,用户可以与之进行交互   protected void onResume() {     super.onResume();     Log.e(TAG, "onResume.......");   }   @Override   //与onResume对应,当Activity失去焦点时调用   protected void onPause() {     super.onPause();     Log.e(TAG, "onPause.......");   }   @Override   //与onStart对应,当Activity不可见时调用   protected void onStop() {     super.onStop();     Log.e(TAG, "onStop.......");   }   @Override   //与onCreate对应,当Activity被销毁时调用   protected void onDestroy() {     super.onDestroy();     Log.e(TAG, "onDestroy.......");   }   @Override   //Activity从后台重新回到前台调用   protected void onRestart() {     super.onRestart();     Log.e(TAG, "onRestart.......");   } } 

       Activity的完整生命周期:oncreate-->onstart-->onresume-->onpause-->onstop-->ondestory。用户在点击返回键的时候,Activity会销毁,这时Activity先是不可编辑,再是不可见,最后被销毁。而当用户点击home键的时候,即表示退回到桌面,这时的Activity并不会被销毁,所以这里现实不可编辑,再是不可见,这时并不会调用onDestory方法被销毁,此时再点击进入该应用,会调用onRestart方法,不再是调用Activity,然后再是调用onStart,onResume。

       下面是Activity的生命周期图:

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表