1. 程式人生 > >activity的幾個相關類

activity的幾個相關類

final boolean finishActivityLocked(ActivityRecord r, int index,
        int resultCodeIntent resultDataString reason, boolean immediate) {
    if (r.finishing) {
        Slog.w(TAG"Duplicate finish request for " + r);
        return false;
}

    r.makeFinishing();
EventLog.writeEvent(EventLogTags.AM_FINISH_ACTIVITY,
System.identityHashCode(r),
r.task.taskIdr.shortComponentNamereason);
    if (index < (mHistory.size()-1)) {
        ActivityRecord next = mHistory.get(index+1);
        if (next.task == r.task) {
            if (r.frontOfTask) {
                // The next activity is now the front of the task.
next.frontOfTask = true;
}
            if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0) {
                // If the caller asked that this activity (and all above it)
                // be cleared when the task is reset, don't lose that information,
                // but propagate it up to the next activity.
next.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
}
        }
    }

    //暫停這個類的一些操作,應該是這樣的 這個方法沒有細看
r.pauseKeyDispatchingLocked();
    if (mMainStack) {
        if (mService.mFocusedActivity == r) {
            mService.setFocusedActivityLocked(topRunningActivityLocked(null));
}
    }

    finishActivityResultsLocked(rresultCoderesultData);
    if (mService.mPendingThumbnails.size() > 0) {
        // There are clients waiting to receive thumbnails so, in case
        // this is an activity that someone is waiting for, add it
        // to the pending list so we can correctly update the clients.
mService.mCancelledThumbnails.add(r);
}

    //這裡傳入的是false 先不看這個判斷裡面的方法
if (immediate) {  //這裡關閉activity
return finishCurrentActivityLocked(rindex,
FINISH_IMMEDIATELY) == null;
else if (mResumedActivity == r) {
        boolean endTask = index <= 0
|| (mHistory.get(index-1)).task != r.task;
        if (DEBUG_TRANSITION) Slog.v(TAG,
"Prepare close transition: finishing " + r) //這裡應該是執行關閉動畫
mService.mWindowManager.prepareAppTransition(endTask
                ? WindowManagerPolicy.TRANSIT_TASK_CLOSE
                : WindowManagerPolicy.TRANSIT_ACTIVITY_CLOSE, false);
// Tell window manager to prepare for this one to be removed.
mService.mWindowManager.setAppVisibility(r.appToken, false);
        if (mPausingActivity == null) {
            if (DEBUG_PAUSE) Slog.v(TAG"Finish needs to pause: " + r);
            if (DEBUG_USER_LEAVING) Slog.v(TAG"finish() => pause with userLeaving=false");
startPausingLocked(false, false);
}

    } else if (r.state != ActivityState.PAUSING) {
        // If the activity is PAUSING, we will complete the finish once
        // it is done pausing; else we can just directly finish it here.
if (DEBUG_PAUSE) Slog.v(TAG"Finish not pausing: " + r);
//這裡 和 是不是和 true 執行的方法一樣
return finishCurrentActivityLocked(rindex,
FINISH_AFTER_PAUSE) == null;
else {
        if (DEBUG_PAUSE) Slog.v(TAG"Finish waiting for pause of: " + r);
}

    return false;
}

相關推薦

activity相關

final boolean finishActivityLocked(ActivityRecord r, int index,        int resultCode, Intent resultData, String reason, boolean immediate) {     if (r.fi

VMware 升級esxi網卡驅動的相關命令

vmware 網卡驅動 1、將下載的驅動上傳到要升級的esxi storage2、開啟esxi主機的SSH功能3、 列出當前ESXi主機上所有NICs的狀態esxcli network nic list 4、查看網卡驅動版本及固件版本 esxcli network nic get -n vmnic2

工具

rgs ip定位 ner math.sqrt on() ext blog inner 不支持 一:通過web獲取所在的經緯度(註意這裏有的臺式機不支持,所以最好用手機訪問): <!DOCTYPE html> <html> <head>

GenericAPIView擴充套件的綜合使用

五個擴充套件類 擴充套件類 作用 封裝的方法 狀態碼(成功,失敗) ListModelMixin 查詢多條資料 list 200 CreateModelMixin

面試中常考的集合(java)

這裡首先借用下網上的一張集合介面關係圖 下面簡述幾種常用集合的區別,還有部分不常用集合類未描述 Iterable迭代器介面,這是Collection類的父介面。實現這個Iterable介面的物件允許使用foreach進行遍歷,也就是說,所有的Collection集合物件都

BigDecimal精確計算 (原創)分享自己寫的工具(四)BigDecimal精確計算

(原創)分享自己寫的幾個工具類(四)BigDecimal精確計算 2017年04月18日 17:34:56 閱讀數:2002 java的float只能用來進行科學計算或工程計算,但是 在大多數的商業計算中,一般採用ja

國外問答網站

  Quora 的成功引發了問答網站相關的熱烈討論。和傳統問答網站如雅虎知識問答之類的最大的區別,除了互動形式上的變化外,最重要的應該是回答的人和答案的質量。擁有專業背景的人越多、參與度越高,對問答網站來說就越有價值。這類網站最困難的地方在於如何從零開始吸引專業人士。因此這樣的形式其實更適合原本就擁有大

java 併發程式設計的工具

1.CountDownLatch(倒計時器)適用於一個主執行緒在等待其他幾個執行緒執行結果的應用場景。(比如一主多重)當CountDownLatch維護的計數器為零的時候,呼叫await方法的執行緒才會執行,否則一直阻塞2.CyclicBarrier(CyclicBarrie

FI中替代和校驗的相關函式

替代(Substitution): FI_SUBSTITUTION_HEADER FI_SUBSTITUTION_ITEM FI_SUBSTITUTION_DOC FI_SUBSTITUTION_AC

dbutils中QueryRunner中rsh的用法

1. ResultSetHandler 的作用: QueryRunner 的 query 方法的返回值最終取決於 query 方法的 ResultHandler 引數的 hanlde

SpringMVC核心(控制器核心,載入配置檔案核心,處理url影射核心,處理檢視資源核心,方法動態呼叫核心)

核心類 制器核心類: •org.springframework.web.servlet.DispatcherServlet  - 配置web.xml 載入配置檔案核心類: •org.springfr

C++ 輸入流 cin/ ifstream/ istringstream 及相關函式在遇到檔案結束符EOF時的行為

以下內容分別在VC6.0 和 g++ 4.7下測試: 輸入流在遇到檔案結束符時會設定其eofbit,但此時在兩個編譯器上直接測試流得到的結果都為真,同時eof()也為真,舉例如下: #include <iostream> #include <string&

基礎型循環刪除

indexer app out pre ont end error code move 把列表中所有姓周的?的信息刪掉(此題有坑, 請慎重): lst = [‘周老二‘, ‘周星星‘, ‘麻花藤‘, ‘周扒皮‘] 結果: lst = [‘麻花藤‘] lst = [‘

Java中有關多執行緒併發的工具之總結

概述 在JDK的併發包(java.util.concurrent)中,為我們提供了幾個非常重要的併發工具類,分別為CountDownLatch、CyclicBarrier、Semaphore和Exchanger,下面將一一對這幾個類的功能及基本用法做詳細講解。 1)Cou

安卓常用到的工具(不定期更新)

自己做專案,用到的幾個工具類,這裡記一下,以後找到方便 1.一個double型別資料精準四則運算類Arith.java import java.math.BigDecimal; public class Arith{ //預設除法運算精度 private

Mybatis中重要

本文基於Mybatis3.2.0版本的程式碼。 1.org.apache.ibatis.mapping.MappedStatement MappedStatement類在Mybatis框架中用於表示XML檔案中一個sql語句節點,即一個<select />、&

Java中常用總結

一. System: 1.     首先是System類,因為從一開始從接觸java起,我們就無時無刻都在接觸它,經常用它來向螢幕,向控制檯列印輸出一些資訊,System.out.println(“hello world”);這個只是在控制檯輸出一條資訊“hello wor

(四)activiti的核心

先來一張圖: 在前幾篇文章匯中已經整合好了activiti,最後我們獲取到的是activiti對外提供的7個核心服務,所有針對activiti的操作都是使用這7個核心服務來執行的。這7個服務中有些

java.util.concurrent包下的常用

1.Callable<V> Callable<V>與Runnable類似,理解Callable<V>可以從比較其與Runnable的區別開始: 1)從使用上:實現的Callable<V>的類需要實現call()方法,此方

Java IO中主要介紹和使用

1. I/O流可以有三種分類方法. 第一, 輸入流,輸出流 . 第二, 位元組流,字元流 . 第三, 節點流(真正直接處理資料的) ,處理流(裝飾加工節點流的) . 2. 位元組流 抽象類 <– 面向位元組的檔案流 . InputStream <–