日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android 锁屏的生命周期_Activity的生命周期的七个场景

發(fā)布時(shí)間:2024/3/13 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 锁屏的生命周期_Activity的生命周期的七个场景 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。