android 锁屏的生命周期_Activity的生命周期的七个场景
簡(jiǎn)單介紹Activity生命周期經(jīng)常調(diào)用的幾個(gè)方法:
onCreate()與onDestroy()
Activity的創(chuàng)建與銷毀,處于Activity的entire lifetime完整生命周期
onStart()與onStop()
Activity的可見(jiàn)與不可見(jiàn),處于Activity的visible lifetime可見(jiàn)生命周期
onResume()與onPause()
Activity的獲取焦點(diǎn)與失去焦點(diǎn),處于Activity的foreground time 前臺(tái)生命周期
onSaveInstanceState()與onRestoreIntanceState()
保存數(shù)據(jù)和取出保存的數(shù)據(jù),橫豎屏切換的時(shí)候,兩個(gè)方法會(huì)被同時(shí)調(diào)用,當(dāng)然這只是這兩個(gè)方法同時(shí)出現(xiàn)場(chǎng)景之一
onConfiguration()
在Activity的Manifest文件下配置完configChanges屬性,如果是橫豎屏切換相關(guān)值,則在橫豎屏切換時(shí)會(huì)被調(diào)用
下面用Activity的使用的七個(gè)場(chǎng)景來(lái)這些生命周期方法的執(zhí)行順序
一、Activity1首次啟動(dòng)
onCreate-->onStart-->onResume
控制臺(tái)打印效果圖
Activity首次啟動(dòng)生命周期調(diào)用順序.png
二、Activity1按返回鍵并從手機(jī)緩存應(yīng)用列表中啟動(dòng)
onResume-->onPause-->onStop-->onDestroy
再次啟動(dòng):onCreate-->onStart-->onResume
控制臺(tái)打印效果圖
Activity從手機(jī)緩存啟動(dòng).jpg
三、Activity1按住home鍵從手機(jī)緩存應(yīng)用列表中再次啟動(dòng)
onResume-->onPause-->onSaveInstanceState-->onStop
再次啟動(dòng):onRestart-->onStart-->onResume
控制臺(tái)打印效果圖
Home鍵再?gòu)氖謾C(jī)緩存啟動(dòng).jpg
四、Activity1鎖屏關(guān)閉再開啟
onResume-->onPause-->onSaveInstanceState-->onStop
再次啟動(dòng):onRestart-->onStart-->onResume
控制臺(tái)打印效果圖
鎖屏關(guān)閉.jpg
五、Activity1啟動(dòng)Activity2
Activity1:onResume-->onPause
Activity2:onCreate-->onStart-->onResume
Activity1:onSaveInstanceState-->onStop
控制臺(tái)打印效果圖
Activity1啟動(dòng)Activity2.jpg
六、Activity1啟動(dòng)Activity2,Activity2退出或者按返回鍵
Activity2:onResume-->onPause
Activity1:onRestart-->onStart-->onResume
Activity2:onStop-->onDestroy
控制臺(tái)打印效果圖
Activity2被關(guān)閉.jpg
七、Activity1橫縱屏切換,并做相關(guān)配置
豎屏:onCreate-->onStart-->onResume-->onPause-->onSaveInstanceState
-->onStop-->onDestroy
橫屏:onCreate-->onStart-->onRestoreInstanceState-->onResume
控制臺(tái)打印效果圖
橫縱屏切換.jpg
配置Activity橫豎切換不重新創(chuàng)建
android:configChanges="orientation|screenSize"
是在AndroidManifest.xml相應(yīng)的標(biāo)簽的屬性
控制臺(tái)打印效果圖
配置ActivityconfigChanges后生命周期.jpg
Activity1代碼塊
public class MainActivity extends AppCompatActivity {
static String TAG="dayng";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(savedInstanceState!=null){
Log.i(TAG,"退出時(shí)保存的數(shù)據(jù)"+savedInstanceState.getString("dayang"));
}
Log.i(TAG,"-------MainActivity.onCreate--------");
}
public void onClick(View view){
Intent intent=new Intent(this,Main2Activity.class);
startActivity(intent);
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG,"-------MainActivity.onStart--------");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG,"-------MainActivity.onResume--------");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG,"-------MainActivity.onPause--------");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG,"-------MainActivity.onRestart--------");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG,"-------MainActivity.onStop--------");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG,"-------MainActivity.onDestroy--------");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString("dayang","-----7777777");
super.onSaveInstanceState(outState);
Log.i(TAG,"--------MainActivity.onSaveInstanceState--------");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG,"--------MainActivity.onRestoreInstanceState--------");
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG,"--------MainActivity.onConfiguration--------");
}
}
Activity2代碼塊
public class Main2Activity extends AppCompatActivity {
static String TAG="dayang";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Log.i(TAG,"-------Main2Activity.onCreate-------");
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG,"-------Main2Activity.onStart-------");
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG,"-------Main2Activity.onResume-------");
}
@Override
protected void onPause() {
super.onPause();
Log.i(TAG,"-------Main2Activity.onPause-------");
}
@Override
protected void onStop() {
super.onStop();
Log.i(TAG,"-------Main2Activity.onStop-------");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(TAG,"-------Main2Activity.onRestart-------");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(TAG,"-------Main2Activity.onDestroy-------");
}
public void close(View view){
finish();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Log.i(TAG,"-------Main2Activity.onSaveInstanceState-------");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.i(TAG,"-------Main2Activity.onRestoreInstanceState-------");
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.i(TAG,"-------Main2Activity.onConfiguration-------");
}
}
總結(jié)
以上是生活随笔為你收集整理的android 锁屏的生命周期_Activity的生命周期的七个场景的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FFmpeg 在 Python 中的安装
- 下一篇: Computer-System Stru