内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Activity的singleTask怎么使用

這篇文章主要講解了“Activity的singleTask怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Activity的singleTask怎么使用”吧!

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、博野網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為博野等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

首先是獲得用來(lái)啟動(dòng)Activity的Intent的Flags,并且保存在launchFlags變量中。

這里,launcFlags的Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP位沒(méi)有置位。

因此,notTop為null。

接下來(lái)的這個(gè)if語(yǔ)句:

[java] view plaincopy if (sourceRecord == null) { ...... } else if (sourceRecord.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE)  ...... } else if (r.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE || r.launchMode == ActivityInfo.LAUNCH_SINGLE_TASK) { // The activity being started is a single instance... it always // gets launched into its own task. launchFlags |= Intent.FLAG_ACTIVITY_NEW_TASK; }

這里變量r的類型為ActivityRecord,它表示即將在啟動(dòng)的Activity,在這個(gè)例子中,即為SubActivity,因此,這里的 r.launchMode等于ActivityInfo.LAUNCH_SINGLE_TASK,于是,無(wú)條件將launchFlags的 Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP位置為1,表示這個(gè)SubActivity要在新的任務(wù)中啟動(dòng),但是別急,還 要看看其它條件是否滿足,如果條件都滿足,才可以在新的任務(wù)中啟動(dòng)這個(gè)SubActivity。

接下將addingToTask變量初始化為false,這個(gè)變量也將決定是否要將SubActivity在新的任務(wù)中啟動(dòng),從名字我們就可以看出, 默認(rèn)不增加到原有的任務(wù)中啟動(dòng),即要在新的任務(wù)中啟動(dòng)。這里的r.launchMode ==  ActivityInfo.LAUNCH_SINGLE_TASK條成立,條件r.resultTo ==  null也成立,它表這個(gè)Activity不需要將結(jié)果返回給啟動(dòng)它的Activity。于是會(huì)進(jìn)入接下來(lái)的if語(yǔ)句中,執(zhí)行:

[java] view plaincopy ActivityRecord taskTop = r.launchMode != ActivityInfo.LAUNCH_SINGLE_INSTANCE  ? findTaskLocked(intent, r.info)  : findActivityLocked(intent, r.info)

這里的條件r.launchMode !=  ActivityInfo.LAUNCH_SINGLE_INSTANCE成立,于是執(zhí)行findTaskLocked函數(shù),這個(gè)函數(shù)也是定義在 frameworks/base/services/java/com/android/server/am/ActivityStack.java文件中:

[java] view plaincopypublic class ActivityStack {     ......     /**     * Returns the top activity in any existing task matching the given     * Intent. Returns null if no such task is found.     */     private ActivityRecord findTaskLocked(Intent intent, ActivityInfo info)     {     ComponentName cls = intent.getComponent();     if (info.targetActivity != null) {     cls = new ComponentName(info.packageName, info.targetActivity);     }     TaskRecord cp = null;     final int N = mHistory.size();     for (int i=(N-1); i>=0; i--) {     ActivityRecord r = (ActivityRecord)mHistory.get(i);     if (!r.finishing && r.task != cp     && r.launchMode != ActivityInfo.LAUNCH_SINGLE_INSTANCE) {     cp = r.task;     //Slog.i(TAG, "Comparing existing cls=" +     r.task.intent.getComponent().flattenToShortString()     // + "/aff=" + r.task.affinity + " to new cls="     // + intent.getComponent().flattenToShortString() + "/aff=" +     taskAffinity);     if (r.task.affinity != null) {     if (r.task.affinity.equals(info.taskAffinity)) {     //Slog.i(TAG, "Found matching affinity!");     return r;     }     } else if (r.task.intent != null     && r.task.intent.getComponent().equals(cls)) {     //Slog.i(TAG, "Found matching class!");     //dump();     //Slog.i(TAG, "For Intent " + intent + " bringing to top: " +     r.intent);     return r;     } else if (r.task.affinityIntent != null     && r.task.affinityIntent.getComponent().equals(cls)) {     //Slog.i(TAG, "Found matching class!");     //dump();     //Slog.i(TAG, "For Intent " + intent + " bringing to top: " +     r.intent);     return r;     }     }     }     return null;     }     ......     }

感謝各位的閱讀,以上就是“Activity的singleTask怎么使用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Activity的singleTask怎么使用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前標(biāo)題:Activity的singleTask怎么使用
文章出自:http://www.rwnh.cn/article10/jdccgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、電子商務(wù)、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
江油市| 饶河县| 班玛县| 大港区| 庐江县| 鞍山市| 新乐市| 乳源| 师宗县| 崇州市| 靖江市| 石林| 肥城市| 宁武县| 息烽县| 宁津县| 东宁县| 廊坊市| 临沂市| 临夏县| 普陀区| 抚州市| 卓尼县| 新和县| 井冈山市| 正定县| 钟山县| 上虞市| 岑溪市| 怀化市| 汽车| 如东县| 霍邱县| 湛江市| 五峰| 许昌市| 类乌齐县| 哈巴河县| 普陀区| 长治县| 奉化市|