av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Android應(yīng)用程序組件Activity的"singleTask"(7)

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

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、思禮網(wǎng)絡(luò)推廣、小程序制作、思禮網(wǎng)絡(luò)營銷、思禮企業(yè)策劃、思禮品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供思禮建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

這里,launcFlags的Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP位沒有置位。

因此,notTop為null。

接下來的這個(gè)if語句:

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

這里變量r的類型為ActivityRecord,它表示即將在啟動(dòng)的Activity,在這個(gè)例子中,即為SubActivity,因此,這里的 r.launchMode等于ActivityInfo.LAUNCH_SINGLE_TASK,于是,無條件將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。于是會進(jìn)入接下來的if語句中,執(zhí)行:

 
 
  1. [java] view plaincopy ActivityRecord taskTop = r.launchMode != ActivityInfo.LAUNCH_SINGLE_INSTANCE
  2. ? findTaskLocked(intent, r.info)
  3. : 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文件中:

 
 
  1. [java] view plaincopypublic class ActivityStack {
  2.       ......
  3.       /**
  4.       * Returns the top activity in any existing task matching the given
  5.       * Intent. Returns null if no such task is found.
  6.       */
  7.       private ActivityRecord findTaskLocked(Intent intent, ActivityInfo info)
  8.     {
  9.       ComponentName cls = intent.getComponent();
  10.       if (info.targetActivity != null) {
  11.       cls = new ComponentName(info.packageName, info.targetActivity);
  12.       }
  13.       TaskRecord cp = null;
  14.       final int N = mHistory.size();
  15.       for (int i=(N-1); i>=0; i--) {
  16.       ActivityRecord r = (ActivityRecord)mHistory.get(i);
  17.       if (!r.finishing && r.task != cp
  18.       && r.launchMode != ActivityInfo.LAUNCH_SINGLE_INSTANCE) {
  19.       cp = r.task;
  20.       //Slog.i(TAG, "Comparing existing cls=" +
  21.     r.task.intent.getComponent().flattenToShortString()
  22.       // + "/aff=" + r.task.affinity + " to new cls="
  23.       // + intent.getComponent().flattenToShortString() + "/aff=" +
  24.     taskAffinity);
  25.       if (r.task.affinity != null) {
  26.       if (r.task.affinity.equals(info.taskAffinity)) {
  27.       //Slog.i(TAG, "Found matching affinity!");
  28.       return r;
  29.       }
  30.       } else if (r.task.intent != null
  31.       && r.task.intent.getComponent().equals(cls)) {
  32.       //Slog.i(TAG, "Found matching class!");
  33.       //dump();
  34.       //Slog.i(TAG, "For Intent " + intent + " bringing to top: " +
  35.     r.intent);
  36.       return r;
  37.       } else if (r.task.affinityIntent != null
  38.       && r.task.affinityIntent.getComponent().equals(cls)) {
  39.       //Slog.i(TAG, "Found matching class!");
  40.       //dump();
  41.       //Slog.i(TAG, "For Intent " + intent + " bringing to top: " +
  42.     r.intent);
  43.       return r;
  44.       }
  45.       }
  46.       }
  47.       return null;
  48.       }
  49.       ......
  50.       }

分享文章:Android應(yīng)用程序組件Activity的"singleTask"(7)
URL鏈接:http://uogjgqi.cn/article/cddoosd.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流