活动的生命周期:实例上机课

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了活动的生命周期:实例上机课相关的知识,希望对你有一定的参考价值。

    让我们再来回顾一下上节课中分享的7个生命周期;分别是:onCreate()、onSart()、onResme()、onPause()、onStop()、onDestroy()、onRestart();

         1.onCreate():初始化操作,所有活动都从这里启始。这里可以加载布局,或绑定事件等。

         2.onSart():这个是活动变为不可见时调用。

         3.onResme():这个方法一直处于栈的顶部,在和用户交互时调用,一直处于动行状态。

         4.onPause():系统准备去启动或者恢复另一个活动时调用。这个方法以通常用来释放内存或保存数据,一定要快,不然会影响到栈顶部的活动运行。

         5.onStop():这个方法是活动处于不可见时调用,它与onPause()的区别在于如果启动的活动是一个对话框式的,则onPause()会得到执行而onStop()的不会执行。

         6.onDestroy():这个是活动被回收时调用,调用后活动就会被回收。

         7.onRestart():重启处于停止状态的活动。

    下面让我们来创建一个实例来检验一下上节课所学到的知识,这次我们重新创建一个项目:activtityLifecysletest

         分别是dialog_Activity、NormalActivity、 MainActivity。其中dialog_Activity、NormalActivity分别有一个txtview控件,txt为活动的中文名。MainActivity中有两个按钮分别启动dialog_Activity、NormalActivity之用。在MainActivity注册两个活动的事件,然后调用几个回调函数来记录日志,让我们看清楚这7个方法的启动顺序。

      

public class MainActivity extends AppCompatActivity {

    public static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "onCreate");

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        Button startNormalActivty = (Button) findViewById(R.id.start_normal_activity);
        Button startDialogActivty = (Button) findViewById(R.id.start_dialog_activity);

        startNormalActivty.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, NormalActivity.class);
               startActivity(intent);
            }
        });

        startDialogActivty.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, dialog_Activity.class);
                startActivity(intent);
            }
        });

    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart服务开始");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "Resume活跃状态");
    }
    @Override
    protected  void  onStop(){
        super.onStop();
        Log.d(TAG,"onStop活动停止") ;
    }
       @Override
       protected void onDestroy(){
            super.onDestroy();
           Log.d(TAG,"onDestroy活动销毁");
       }
    @Override
    protected  void onRestart()
    {
          super.onRestart();
        Log.d(TAG,"onRestart活动重启")  ;

    }

}

   以上是MainActivity的代码。两个活动的这里就不写了,小Y的键盘真心不好用。快被虐哭了。直接上图吧。

技术分享

技术分享技术分享技术分享

   

    

        

         







以上是关于活动的生命周期:实例上机课的主要内容,如果未能解决你的问题,请参考以下文章

关于其活动的片段生命周期

Android片段生命周期:onResume调用了两次

活动和片段之间的生命周期

如何让自定义视图观察包含片段的生命周期事件而不是活动?

了解活动生命周期

关于Activity和Fragment生命周期的问题