Activity生命周期

Activty状态

1.运行状态:该Activity位于前台,用户可见,可获得焦点。即该Activity为当前与用户的唯一界面。
2.暂停状态:其他Activity位于前台,依然部分可见,无法获得焦点。如启动一个对话框风格的Activity,遮住来了该Activity的部分内容。
3.停止状态:该Activity不可见,失去焦点,但是未被销毁。
3.销毁状态:该Activity结束,或者所在进程被finish。

回调方法

1.onCreate(Bundle savedStatus):创建Activity,该方法只会被调用一次。
2.onStart():启动Activity。
3.onRestart():重新启动Activity。
4.onResume():恢复Activity,onStart()后一定会回调该方法。
5.onPause():暂停Activity。
6.onStop():停止Activity。
7.onDestroy():销毁Activity,只会被调用一次。

状态与回调方法

Activity生命周期_第1张图片

Demo:演示Activity运行过程如何回调各种方法

1.MainActivity:

Activity生命周期_第2张图片

public class MainActivity extends AppCompatActivity {
    final String TAG = "---MainActivity---";
    @BindView(R.id.dialog)
    Button dialog;
    @BindView(R.id.second)
    Button second;
    @BindView(R.id.finish)
    Button finish;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i(TAG, "onCreate创建!");
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i(TAG, "onStart启动!");
    }
   @Override
    protected void onRestart() {
        super.onRestart();
        Log.i(TAG, "onRestart重新启动!");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.i(TAG, "onResume重新开始!");
    }
    @Override
    protected void onPause() {
        super.onPause();
        Log.i(TAG, "onPause暂停!");
    }
    @Override
    protected void onStop() {
        super.onStop();
        Log.i(TAG, "onStop停止!");
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i(TAG, "onDestroy摧毁!");
    }
    @OnClick({R.id.dialog, R.id.second, R.id.finish})
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.dialog:
                startActivity(new Intent(this, DialogActivity.class));
                break;
            case R.id.second:
                startActivity(new Intent(this, SecondActivity.class));
                break;
            case R.id.finish:
                finish();
                break;
        }
    }
}

DialogActivty对话框风格的Activity:

Activity生命周期_第3张图片

public class DialogActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView text = new TextView(this);
        text.setText("对话框风格!");
        setContentView(text);
    }
}

SecondActivity:

一个可跳转的空白Activity。

测试结果

1.启动Activity

这里写图片描述

2.开启对话框风格的Activity

Activity生命周期_第4张图片

3.点击<–返回键

Activity生命周期_第5张图片

4.点击home键

Activity生命周期_第6张图片

5.再次启动Activity

这里写图片描述

6.跳转到第二个Activity

Activity生命周期_第7张图片
ps:与点击home键一致

7.点击finish按钮

Activity生命周期_第8张图片

总结

每个Activty都有可能从活动状态转为非活动状态,也有可能非活动状态转为活动状态。充分利用这些回调方法就能恢复Activity的状态。继续该Activity之前的进程操作。

Demo代码地址:
http://download.csdn.net/detail/demonliuhui/9792595

你可能感兴趣的:(Android笔记)