国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

第一行代碼學(xué)習(xí)2(5)

2019-11-07 23:30:02
字體:
供稿:網(wǎng)友

Activity的啟動模式


Activity的啟動模式由四種:standard,singleTopsingleTasksingleInstance??梢栽贏ndroidManifest.xml中給activity標(biāo)簽指定android:launcherMode屬性來選擇啟動模式。

standard是默認(rèn)的啟動方式,所有的啟動的activity都只存在一個棧當(dāng)中,并且遵循先進(jìn)后出的原則。

<activity android:launcherMode:"standard">//默認(rèn)存在,可加可不加</activity>

singleTop:當(dāng)活動的啟動模式指定為singleTop,在啟動活動時如果發(fā)現(xiàn)返回棧頂已經(jīng)是該活動,則可以直接使用,不會創(chuàng)建新的活動實(shí)例。

<activity android:launcherMode:"singleTop"></activity>

但是如果有B活動進(jìn)入了同一個棧,而B活動又可以重新建立之前的A活動的話,這時候A活動會被新建一個實(shí)例,這樣也會影響用戶的體驗(yàn)。也就是說singleTop可以很好的解決重復(fù)創(chuàng)建棧頂活動的問題,但是活動沒有處于棧頂?shù)奈恢眠€是可能創(chuàng)建多個活動實(shí)例。

singleTask:每次啟動A活動時系統(tǒng)先會在返回棧中檢查是否存在A活動的實(shí)例,如果沒有發(fā)現(xiàn)已經(jīng)存在則直接使用該實(shí)例,并把這個活動之上的所有活動統(tǒng)統(tǒng)出棧,如果沒有發(fā)現(xiàn)就會創(chuàng)建一個新的A活動實(shí)例。

<activity android:launcherMode: "singleTask"></activity>

singleInstance:設(shè)置了該模式的activity會在每次啟動的時候會啟用一個新的返回棧來管理該活動,可以實(shí)現(xiàn)共享活動實(shí)例的問題:

<activity android:launcherMode:"singleInstance"></activity>

知曉當(dāng)前啟動那個活動

主要方法:

getClass().getSimpleName();

實(shí)現(xiàn)過程代碼: 先創(chuàng)建一個新的BaseActivity,并繼承Activity,在onCreate()中寫入以下代碼:

log.i("TAG", getClass().getSimpleName());

然后把各個activity的的繼承關(guān)系改為BaseActivity,這樣就相當(dāng)于每個activity在啟動的時候走先走父類的onCreate方法,執(zhí)行打印語句,打印出當(dāng)前的活動名稱。


通過指定方式退出活動


創(chuàng)建一個新的類:

public class ActivityCollection{ public static void addActivity(Activity activity){ activities.add(activity); } public static void removeActivity(Activity activity){ activities.remove(activity); } public static void finishActivity(){ for(Activity activity : activities){ if(!activity.isFinishing()){ activity.finish(); } } }}

在BaseActivity的onCreate、onDestroy方法中調(diào)用addActivity、removeActivity的方法,就是在每次啟動子活動的時候都可以在List添加Activity元素或者殺死一個Activity,若要在某個特定的活動中通過某個特定的方式殺死一個活動則調(diào)用finishActivity方法:

ActivityCollection.finishActivity();

啟動活動的小技巧


當(dāng)一個活動中需要用到一些重要的參數(shù),需要啟動活動的時候必須傳遞進(jìn)來,那我們最好在需要啟動的活動中添加如下代碼,方便后來者或自己知道要傳入什么類型的參數(shù):

public static void actionActivity(Context context, String data1, String data2){//這里參數(shù)不一定是String,根據(jù)具體情況而定。 Intent intent = new Intent(context, SecondActivity.class) intent.putExtra("param1", data1); intent.putExtra("param2", data2); context.startActivity(intent);}

在啟動需要參數(shù)的活動的時候只要調(diào)用相應(yīng)的方法并傳入?yún)?shù)即可:

SecondActivity.actionActivity(FristActivity.this, "data1", "data2");
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 深州市| 永安市| 城固县| 化州市| 金平| 东台市| 吉木乃县| 普宁市| 乌恰县| 德化县| 阿荣旗| 东光县| 历史| 周口市| 龙井市| 和林格尔县| 潍坊市| 沧州市| 岳阳县| 宜君县| 瑞金市| 迁西县| 宜都市| 加查县| 凉城县| 乌鲁木齐县| 高清| 化德县| 裕民县| 托克逊县| 准格尔旗| 凤阳县| 板桥市| 东辽县| 昌都县| 东乌珠穆沁旗| 西藏| 千阳县| 郧西县| 湘乡市| 且末县|