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