1.Activity的生命周期
1).onCreate //创建
2).onStart //启动
3)onResume //获取焦点
4)onPause //失去焦点
5)onRestart //重新启动
6)onDestroy//销毁
7)onStop //停止
2.新建一个Activity
执行的生命周期是
onCreate //创建-----onStart //启动------onResume //获取焦点
如果点返回键走的生命周期是
onPause //失去焦点------onStop //停止-----onDestroy//销毁
如果点home键返回主菜单时的生命周期是
onPause //失去焦点------onStop //停止
当再次进入项目时的生命周期是
onRestart //重新启动-------onStart //启动-----onResume //获取焦点
3.如果当Activity1跳转到Activity2时生命周期是
Activity1走onPause //失去焦点----Activity2走onCreate //创建-----onStart //启动------onResume //获取焦点------Activity1走onStop //停止-----onDestroy//销毁
如果Activity2点返回键返回Activity1时生命周期是
Activity2走onPause //失去焦点Activity1走onCreate //创建-----onStart //启动------onResume //获取焦点----Activity2走onStop //停止-----onDestroy//销毁
如果Activity2点home键返回主菜单时的生命周期是
Activity2走onPause //失去焦点------onStop //停止
当再次进入项目时的生命周期是
onRestart //重新启动-------onStart //启动-----onResume //获取焦点
4.//保存由销毁 切换 内存不足时保存临时数据的方法是
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//储存因销毁 切换 内存不足时的临时数据
outState.putString("tel","伟飞小贱贱");
Toast.makeText(MainActivity.this,"保存成功",Toast.LENGTH_LONG).show();
Log.d("哈哈哈哈", "onSaveInstanceState保存了数据: ");
}
5.除onCreate以外的获取粗存的临时数据的方法
@Override
//恢复由销毁 切换 内存不足时保存的临时数据
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String tel = savedInstanceState.getString("tel");
Toast.makeText(MainActivity.this,""+tel,Toast.LENGTH_LONG).show();
Log.d("咕咕咕咕", "onRestoreInstanceState取出保存的数据: "+tel);
}
6.切换横竖屏的属性
//这是设定成横屏的属性(注意:只设置这个属性Activity的生命周期还会继续走)
android:screenOrientation="portrait"
这两个只是单一的指定是哪一种方向的屏幕
//这是设定成竖屏的属性(注意:只设置这个属性Activity的生命周期还会继续走)
android:screenOrientation="landscape"
//设置这个属性可以随意切换横竖屏
但是也要注意一定就是这三个(orientation|keyboardHidden|screenSize)参数不能少写一个
不然Activity的生命周期还是会走 全写上就不走Activity的生命周期了
android:configChanges="orientation|keyboardHidden|screenSize"
但是会走 public void onConfigurationChanged(Configuration newConfig) 这个方法
@Override
//横竖屏切换是不走Activity的生命周期是走这个方法
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//这是获取是那一种屏是横屏还是竖屏
int orientation = newConfig.orientation;
//这是给不同的屏添加不同的布局
if (orientation==Configuration.ORIENTATION_LANDSCAPE){
//这是给竖屏加载的布局
setContentView(R.layout.activity_login);
}
if (orientation==Configuration.ORIENTATION_PORTRAIT){
//这是给横屏加载的布局
setContentView(R.layout.activity_reg);
}
}
1).onCreate //创建
2).onStart //启动
3)onResume //获取焦点
4)onPause //失去焦点
5)onRestart //重新启动
6)onDestroy//销毁
7)onStop //停止
2.新建一个Activity
执行的生命周期是
onCreate //创建-----onStart //启动------onResume //获取焦点
如果点返回键走的生命周期是
onPause //失去焦点------onStop //停止-----onDestroy//销毁
如果点home键返回主菜单时的生命周期是
onPause //失去焦点------onStop //停止
当再次进入项目时的生命周期是
onRestart //重新启动-------onStart //启动-----onResume //获取焦点
3.如果当Activity1跳转到Activity2时生命周期是
Activity1走onPause //失去焦点----Activity2走onCreate //创建-----onStart //启动------onResume //获取焦点------Activity1走onStop //停止-----onDestroy//销毁
如果Activity2点返回键返回Activity1时生命周期是
Activity2走onPause //失去焦点Activity1走onCreate //创建-----onStart //启动------onResume //获取焦点----Activity2走onStop //停止-----onDestroy//销毁
如果Activity2点home键返回主菜单时的生命周期是
Activity2走onPause //失去焦点------onStop //停止
当再次进入项目时的生命周期是
onRestart //重新启动-------onStart //启动-----onResume //获取焦点
4.//保存由销毁 切换 内存不足时保存临时数据的方法是
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//储存因销毁 切换 内存不足时的临时数据
outState.putString("tel","伟飞小贱贱");
Toast.makeText(MainActivity.this,"保存成功",Toast.LENGTH_LONG).show();
Log.d("哈哈哈哈", "onSaveInstanceState保存了数据: ");
}
5.除onCreate以外的获取粗存的临时数据的方法
@Override
//恢复由销毁 切换 内存不足时保存的临时数据
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String tel = savedInstanceState.getString("tel");
Toast.makeText(MainActivity.this,""+tel,Toast.LENGTH_LONG).show();
Log.d("咕咕咕咕", "onRestoreInstanceState取出保存的数据: "+tel);
}
6.切换横竖屏的属性
//这是设定成横屏的属性(注意:只设置这个属性Activity的生命周期还会继续走)
android:screenOrientation="portrait"
这两个只是单一的指定是哪一种方向的屏幕
//这是设定成竖屏的属性(注意:只设置这个属性Activity的生命周期还会继续走)
android:screenOrientation="landscape"
//设置这个属性可以随意切换横竖屏
但是也要注意一定就是这三个(orientation|keyboardHidden|screenSize)参数不能少写一个
不然Activity的生命周期还是会走 全写上就不走Activity的生命周期了
android:configChanges="orientation|keyboardHidden|screenSize"
但是会走 public void onConfigurationChanged(Configuration newConfig) 这个方法
@Override
//横竖屏切换是不走Activity的生命周期是走这个方法
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//这是获取是那一种屏是横屏还是竖屏
int orientation = newConfig.orientation;
//这是给不同的屏添加不同的布局
if (orientation==Configuration.ORIENTATION_LANDSCAPE){
//这是给竖屏加载的布局
setContentView(R.layout.activity_login);
}
if (orientation==Configuration.ORIENTATION_PORTRAIT){
//这是给横屏加载的布局
setContentView(R.layout.activity_reg);
}
}