2011-02-25 37 views

回答

46

工作,我認爲,問題是,singleInstance不讓被叫活動在相同的任務調用者的存在,因此它可以在不值返回給調用者。

考慮使用singleTask代替:

singleTask

系統建立在 根新的任務和路線 意圖它的活性。但是,如果活動的實例 已存在,則系統會通過調用onNewIntent()方法將意圖路由到現有的 實例,而不是 創建一個新實例。

singleInstance

與 「singleTask」,除了 系統不啓動任何其他 活動納入拿着 實例的任務。該活動始終是其任務的唯一成員,也是唯一的成員 。

http://developer.android.com/guide/topics/manifest/activity-element.html

+5

如果'onActivityResult'依賴於同一個任務中的父和子都有,那麼不應該記錄在某處?我正在處理通過'onActivityResult' wtf調用的間歇性失敗。 – mwengler 2012-07-29 19:33:20

+3

我不相信這是正確的,我試過了,SingleTask在完成時沒有激活ActivityResult。這個StackOverflow似乎表明了同樣的事情:http://stackoverflow.com/questions/8960072/onactivityresult-with-launchmode-singletask – 2013-06-21 00:26:49

+0

@ jt-gilkeson你鏈接到的問題是談論**目標的啓動模式* *'活動'(即:你正在嘗試發射的那個。OP的問題是討論**調用**'Activity'的啓動模式(即:調用'startActivityForResult()')的啓動模式。這個答案是正確的,因爲具有啓動模式'singleTask' **的'Activity'可以**啓動其他活動到其任務中(但是具有啓動模式「singleInstance」的'Activity'不能)。 – 2017-09-14 13:16:11

4

singleInstance」活動,不允許其他活動成爲其任務的一部分。這是該任務中唯一的活動。如果它開始另一項活動,那麼該活動將分配給其他任務。該活動始終是其任務的唯一成員。
我想onActivityResult不會singleInstance

5

如果活動是singleInstance,這將是該任務的唯一一所以它永遠是任務的頂部。所以當你撥打startActivityForResult時,它會立即觸發回調方法。

0

您不能使用singleInstancesingleTaskstartActivityForResult方法。

標準模式或singleTop啓動模式將解決此問題。

相關問題