Android学习笔记--4.activity的声明周期

来源:互联网 发布:java之父 aws 编辑:程序博客网 时间:2024/06/01 09:21

前言:今天学习了活动的声明周期,也是遇到了一个问题,就是真机调试的时候日志信息输不出来,后来查了资料才知道原来是自己手机日志输出级别默认是warning,解决的办法是打开拨号盘,输入“#2846579#” ,即可进入工程模式。在工程模式中找到Log设置,调整一下输出日志级别。

1.Android 是使用任务(Task)来管理活动一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack) 。

2.每个活动在其生命周期中最多可能会有四种状态
.运行状态
.暂停状态
.停止状态
.销毁状态
3.Activity 类中定义了七个回调方法

.onCreate()
这个方法你已经看到过很多次了,每个活动中我们都重写了这个方法,它会在活动
第一次被创建的时候调用。你应该在这个方法中完成活动的初始化操作,比如说加载布
局、绑定事件等
.onStart()
这个方法在活动由不可见变为可见的时候调用。
.onResume()
这个方法在活动准备好和用户进行交互的时候调用。此时的活动一定位于返回栈的
栈顶,并且处于运行状态。
.onPause()
这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方
法中将一些消耗 CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度
一定要快,不然会影响到新的栈顶活动的使用。
.onStop()
这个方法在活动完全不可见的时候调用。它和 onPause()方法的主要区别在于,如
果启动的新活动是一个对话框式的活动,那么 onPause()方法会得到执行,而 onStop()
方法并不会执行
.onDestroy()
这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
.onRestart()
这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
下面附上代码:

public class MainActivity extends AppCompatActivity {    public static final  String TAG ="MainActivity";    private Button mNormalBtn;    private Button mDialogBtn;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Log.i(TAG,"onCreate");        setContentView(R.layout.activity_main);        if (savedInstanceState!=null){            String tempData = savedInstanceState.getString("data_key");            //把保存下来的数据打印出来            Log.i(TAG,tempData);        }        mNormalBtn = (Button)findViewById(R.id.start_normal_activity);        mDialogBtn = (Button)findViewById(R.id.start_dialog_activity);        mNormalBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this,NormalActivity.class);                startActivity(intent);            }        });        mDialogBtn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this,DialogActivity.class);                startActivity(intent);            }        });    }    @Override    //这个方法会在主活动被回收前调用,所以用此保存数据    protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        String data = "MainActivity";        outState.putString("data_key",data);    }    @Override    protected void onStart() {        super.onStart();        Log.d(TAG, "onStart");    }    @Override    protected void onResume() {        super.onResume();        Log.d(TAG, "onResume");    }    @Override    protected void onPause() {        super.onPause();        Log.d(TAG, "onPause");    }    @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");    }}
0 0
原创粉丝点击