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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

13_Android的生命周期

發(fā)布時間:2024/9/27 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 13_Android的生命周期 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • Activity的生命周期圖

  • 2 Android生命周期中涉及到的幾個過程

    1.啟動Activity:系統(tǒng)會先調(diào)用onCreate方法,然后調(diào)用onStart方法,最后調(diào)用onResume,Activity進(jìn)入運(yùn)行狀態(tài)。

    2. 當(dāng)前Activity被其他Activity覆蓋其上或被鎖屏,系統(tǒng)會調(diào)用onPause方法,暫停當(dāng)前Activity的執(zhí)行。

    3.當(dāng)前Activity由被覆蓋狀態(tài)回到前臺或解鎖鎖屏:系統(tǒng)會調(diào)用onResume方法,再次進(jìn)入運(yùn)行狀態(tài)。

    4.當(dāng)前Activity轉(zhuǎn)到的Activity界面或按Home鍵回到主屏,自身退居后臺:系統(tǒng)會先調(diào)用onPause方法,然后調(diào)用onStop方法。進(jìn)入停滯狀態(tài)。

    5.用戶后退回到此Activity:系統(tǒng)會先后調(diào)用onRestart方法,然后調(diào)用onStart方法,最后調(diào)用onResume方法,再次進(jìn)入運(yùn)行狀態(tài)。

    6.當(dāng)前Activity處于被覆蓋狀態(tài)或者后臺不可見狀態(tài),即第2步和第4步,系統(tǒng)內(nèi)存不足,殺死當(dāng)前Activity,而后用戶退回當(dāng)前Activity,再次調(diào)用onCreate方法、onStart方法、onResume方法,進(jìn)入運(yùn)行狀態(tài)。

    7.當(dāng)用戶退出當(dāng)前Activity:系統(tǒng)先調(diào)用onPause方法,然后調(diào)用onStop方法,最后調(diào)用onDestory方法,結(jié)束當(dāng)前Activity.

    3.編寫如下程序進(jìn)行測試

    4 Android清單文件如下:

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"

    ??? package="com.itheima.lifecycle"

    ??? android:versionCode="1"

    ??? android:versionName="1.0" >

    ?

    ??? <uses-sdk

    ??????? android:minSdkVersion="8"

    ??????? android:targetSdkVersion="19" />

    ?

    ??? <application

    ??????? android:allowBackup="true"

    ??????? android:icon="@drawable/ic_launcher"

    ??????? android:label="@string/app_name"

    ??????? android:theme="@style/AppTheme" >

    ??????? <activity

    ??????????? android:name="com.itheima.lifecycle.MainActivity"

    ??????????? android:label="@string/app_name" >

    ??????????? <intent-filter>

    ??????????????? <action android:name="android.intent.action.MAIN" />

    ?

    ??????????????? <category android:name="android.intent.category.LAUNCHER" />

    ??????????? </intent-filter>

    ??????? </activity>

    ??????? <activity

    ??????????? android:theme="@android:style/Theme.Translucent"

    ??????????? android:name="com.itheima.lifecycle.SecondActivity">

    ??????? </activity>

    ??? </application>

    ?

    </manifest>

    5 布局文件activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    ??? xmlns:tools="http://schemas.android.com/tools"

    ??? android:layout_width="match_parent"

    ??? android:layout_height="match_parent"

    ??? tools:context=".MainActivity" >

    ???

    ??? <Button

    ??????? android:onClick="click"

    ??????? android:layout_width="wrap_content"

    ??????? android:layout_height="wrap_content"

    ??????? android:layout_centerVertical="true"

    ??????? android:layout_centerHorizontal="true"

    ????? ??android:text="開啟第二個界面"/>

    ???

    </RelativeLayout>

    布局文件:activity_second.xml

    <RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    ??? xmlns:tools="http://schemas.android.com/tools"

    ??? android:layout_width="match_parent"

    ??? android:layout_height="match_parent"

    ??? tools:context=".SecondActivity" >

    ???

    ?? <TextView

    ??????? android:layout_width="wrap_content"

    ??????? android:layout_height="wrap_content"

    ??????? android:layout_centerHorizontal="true"

    ??????? android:layout_centerVertical="true"

    ??????? android:text="我是第二個界面"/>

    ?

    </RelativeLayout>

    6 MainActivity的代碼如下:

    package com.itheima.lifecycle;

    ?

    import android.content.Intent;

    import android.os.Bundle;

    import android.support.v7.app.ActionBarActivity;

    import android.view.View;

    ?

    public class MainActivity extends ActionBarActivity {

    ?

    ????????????????????? /**

    ????????????????????? ?* 被創(chuàng)建的時候調(diào)用的方法

    ????????????????????? ?*/

    ????????????????????? @Override

    ????????????????????? protected void onCreate(Bundle savedInstanceState) {

    ??????????????????????????? super.onCreate(savedInstanceState);

    ??????????????????????????? setContentView(R.layout.activity_main);

    ?????????????????????

    ??????????????????????????? System.out.println("oncreate");

    ????????????????????? }

    ?

    ????????????????????? /**

    ????????????????????? ?* 被銷毀的時候調(diào)用的方法

    ????????????????????? ?*/

    ????????????????????? @Override

    ????????????????????? protected void onDestroy() {

    ??????????????????????????? System.out.println("onDestroy");

    ??????????????????????????? super.onDestroy();

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* 當(dāng)activity界面可見的時候調(diào)用的方法

    ????????????????????? ?* Activity創(chuàng)建或者從后臺重新回到前臺時候被調(diào)用

    ????????????????????? ?*/

    ????????????????????? @Override

    ????????????????????? protected void onStart() {

    ??????????????????????????? System.out.println("onStart");

    ??????????????????????????? super.onStart();

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* Activity從后臺重新回到前臺時被調(diào)用

    ????????????????????? ?*/

    ????????????????????? protected void onRestart() {

    ??????????????????????????? System.out.println("onstart");

    ??????????????????????????? super.onRestart();

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* 當(dāng)activity界面用戶不可見的時候調(diào)用的方法

    ????????????????????? ?*/

    ????????????????????? @Override

    ????????????????????? protected void onStop() {

    ??????????????????????????? System.out.println("onStop");

    ??????????????????????????? super.onStop();

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* 界面開始獲取到焦點對應(yīng)的方法。

    ????????????????????? ?* (界面按鈕可以被點擊,文本框可以輸入內(nèi)容)

    ????????????????????? ?*

    ????????????????????? ?* Activity創(chuàng)建或者從被覆蓋、后臺重新回到前臺時被調(diào)用

    ????????????????????? ?*/

    ????????????????????? @Override

    ????????????????????? protected void onResume() {

    ??????????????????????????? System.out.println("onresume");

    ??????????????????????????? super.onResume();

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* 界面失去焦點對應(yīng)的方法(暫停)

    ????????????????????? ?* (按鈕不可被點擊,文本框不可,但是界面輸入內(nèi)容,用戶仍然能看見)

    ????????????????????? ?*/

    ????????????????????? @Override

    ????????????????????? protected void onPause() {

    ??????????????????????????? System.out.println("onpause");

    ??????????????????????????? super.onPause();

    ??????????????????????????? //可能在執(zhí)行完onPauseonStop后,系統(tǒng)資源緊張將Activity殺死,所以有

    ??????????????????????????? //必要在此保存持久數(shù)據(jù)

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* 窗口獲得或失去焦點是被調(diào)用,在onResume之后或onPause之后

    ????????????????????? ?*/

    ????????????????????? public void onWindowFocusChanged(boolean hasFocus) {

    ??????????????????????????? System.out.println("onWindowFocusChanged");

    ??????????????????????????? super.onWindowFocusChanged(hasFocus);

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* Activity被系統(tǒng)殺死是被調(diào)用。

    ????????????????????? ?* 例如:屏幕方向改變時,Activity被銷毀在重建;當(dāng)前Activity處于后臺,系統(tǒng)資源

    ????????????????????? ?* 緊張將其殺死。

    ????????????????????? ?* 另外,當(dāng)跳轉(zhuǎn)到其他Activity或者按Home鍵回到主屏是該方法也被調(diào)用,系統(tǒng)為了保存

    ????????????????????? ?* 當(dāng)前View組件,在onPause之后前被調(diào)用。

    ????????????????????? ?*/

    ????????????????????? protected void onSaveInstanceState(Bundle outState) {

    ??????????????????????????? System.out.println("onSaveInstanceState");

    ??????????????????????????? super.onSaveInstanceState(outState);

    ????????????????????? }

    ?????????????????????

    ????????????????????? /**

    ????????????????????? ?* Activity被系統(tǒng)殺死后再重建時被調(diào)用

    ????????????????????? ?* 例如:屏幕方向改變時,Activity被銷毀在重建,當(dāng)前Activity處于后臺,系統(tǒng)

    ????????????????????? ?* 資源緊張將其殺死,用戶又啟動該Activity,這兩種情況下onRestoreInstanceState

    ????????????????????? ?* 都被調(diào)用,在onStart之后。

    ????????????????????? ?*/

    ????????????????????? protected void onRestoreInstanceState(Bundle savedInstanceState) {

    ??????????????????????????? System.out.println("onRestoreInstanceState");

    ??????????????????????????? super.onRestoreInstanceState(savedInstanceState);

    ????????????????????? }

    ?????????????????????

    ????????????????????? public void click(View view) {

    ????????????????????? ????? Intent intent = new Intent(this,SecondActivity.class);

    ??????????????????????????? startActivity(intent);

    ????????????????????? }

    }

    7 SecondActivity的內(nèi)容如下:

    package com.itheima.lifecycle;

    ?

    import android.app.Activity;

    import android.os.Bundle;

    ?

    public class SecondActivity extends Activity {

    ?

    ???????? @Override

    ???????? protected void onCreate(Bundle savedInstanceState) {

    ?????????????????? super.onCreate(savedInstanceState);???????????????????????????????????????????????????????????????

    ?????????????????? setContentView(R.layout.activity_second);

    ???????? }

    }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的13_Android的生命周期的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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