標籤:
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小結