Android之Activity小結

來源:互聯網
上載者:User

標籤:

Acitivity:
四種狀態:活動狀態、暫停狀態、停止狀態、銷毀狀態
四種載入模式:standard ,singleTop,singleTask,singleInstance;
七大方法:onCreate(),onStart(),onRestart(),onResume(),onPause(),onStop(),onDestroy();

    onCreate():當建立Activity時回調,該方法只調用一次。

    onResume():恢複Activity時調用,在調用onStart()之後一定要調用該方法

    onDestroy():銷毀Activity時回調,該方法也只能調用一次。
Android 中的Activity是以Activity棧的形式來管理Activity的,當前Activity為於棧頂。
詳解:
四種狀態:
活動狀態:當前Activity,使用者可見,可以獲得焦點。
暫停狀態:使用者可見,不能獲得焦點。
停止狀態:使用者不可見。
銷毀狀態:activity結束。


四種載入模式;
standard:標準模式 ,預設情況是該模式。
singleTop:Task棧頂單例模式
singleTask:Task棧內單例模式
singleInstance:全域單例模式
Android對Activity的管理:
Android採用Task的形式來管理Activity,當使用者開啟一個Android應用時,Ankdroid會為之建立一個Task,
然後啟動這個應用的入口Activity,(注意:一個應用程式是由若干個Activity的組合)入口Activity是
<intent-filter..../>中配置的MAIN和LANCHER的ACtivity。
應用程式的Task可以理解成為一個Activity棧(先入後出),先啟動的Activity為與棧底,後啟動的位於棧頂。
=====================================//代碼如下:===================

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.LZT.sqlitetry"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="21" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".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></application></manifest>

 

=======================================================================
1.預設模式:standard
當Activity為這麼載入模式的時候,每次啟動該Activity時會在原Task棧中建立一個新的Activity執行個體。
2.singleTop:
該模式與standard模式基本相似,但是有一點不同,如果要啟動的Activity位於棧頂的時候,那就不必再建立出
一個Activity執行個體了。//可以理解字面意思
3.singleTask:
採用這種模式的Activity時,在同一個task中只會有一個該Activity的執行個體,具體分為下面三種情況:
*若啟動的目標Activity不存在時,則會建立出一個Activity,並加入棧頂。
**若目標Activity已經存在,且位於棧頂,那麼與singleTop行為相同
***若目標Activity已經存在但沒有位於棧頂,那麼系統會將該位於該Activity上的所有Activity移除Task,
使得執行個體推至棧頂。
4.singleInstance:
在整個應用程式中只能有一個Activity執行個體並且單獨的位於一個棧中。

以上四種載入模式都需要在檔案清單中進行配置:屬於Activity的一個屬性: LaucnchMode="singleTop"||"singleTask"
||"singleInstance"
Activity的另外一個屬性:exported="ture"||"false",為true時表明該Activity可以被其他應用程式啟動。

 ==============================================================

名為A的Activity的啟動過程:
onCreate()--->onStart()---->onResume();
當前名為A的Activity,然後調用BActivity:
A.onPause()-->B.onCreate()---->B.onStart()---->B.onResume()---->A.onStop();
然後回調A的過程:
B.onPause()--->A.onRestart()--->A.onStart()--->A.onResume()--->B.onStop()--->B.onDestroy();
可以理解為正在玩遊戲,然後有人打電話來了。

一個Activity銷毀時可能的三種狀況:
a:onPause()--->onStop()---onDestroy();
b:onPause()--->progressKill
c:onPause()--->onStop()--->progressKill
CPU可以根據情況直接kill掉一些Activity來節省記憶體。

Android之Activity小結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.