Activiy的注意事项
-> 生命周期:
包含以下7个状态:onCreate, onStart, onResume, onPause, onStop, onDestroy, onRestart.
-> @Override:
重写方法时最好写上该标识,可以防止由于写错方法名称而引起的编译器无法辨别的错误。
-> activity非正常死亡:
通过重写onSaveInstanceState(Bundle savedInstanceState)方法来保存用户数据。当activity被系统杀死然后重新打开的时候,调用的Oncreate方法中的Bundle参数就不会为空,而是记录下了activity死前的所有数据(需要程序员自己添加)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null){
String key = savedInstanceState.getString("TEST_KEY");
}
}
@Override
public void onSaveInstanceState(Bundle outState){
super.onSaveInstanceState(outState);
/**
* 保存用户数据
*/
outState.putString("TEST_KEY", "sherlock");
}
-> Intent 和 Bundle:
Intent,可以理解为“意图”:我们可以通过Intent告诉各个组件你的意图。
Bundle:用于存放用户的数据。
Intent是桥梁。而Bundle是运输车,它能在组件之间运载东西给对方。
//Bundle通过“键-值对”的方式存储数据:
Bundle bundle = new Bundle();
bundle.putString("TEST_KEY","shelock");
//通常来说,Bundle由Intent携带:
intent.putExtra("EXTRA_BUNDLE",bundle);
//若想要从一个activitiy跳到另一个activity,Intent便可以发挥作用了:
Intent intent = new Intent();
intent.setClass(this,NewActivity.class);
//等同于
//Intent intent = new Intent(this,NewActivity.class);
startActivity(intent);