Activity生命周期

来源:互联网 发布:淘宝女装退货率太高了 编辑:程序博客网 时间:2024/06/02 03:41

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,只会被调用一次。

状态与回调方法

这里写图片描述

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

1.MainActivity:

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:

这里写图片描述

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

这里写图片描述

3.点击<–返回键

这里写图片描述

4.点击home键

这里写图片描述

5.再次启动Activity

这里写图片描述

6.跳转到第二个Activity

这里写图片描述
ps:与点击home键一致

7.点击finish按钮

这里写图片描述

总结

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

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

1 0
原创粉丝点击