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

状态与回调方法

这里写图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值