高低搜索對我的問題沒有結果。因此,我終於發帖尋求一些幫助。如何讓外部Activity的startActivityForResult工作?
我有兩個應用程序,都由我寫的。應用程序A啓動應用程序B,通過Intent.putExtra()傳入參數。當App B啓動時參數傳遞的很好,這很好地工作。
但是,我無法找到一種方法來返回應用程序答案。使用startActivityForResult()總是給我立即onResult()與RESULT_CANCELED()。經過進一步檢查,logcat給了我一個警告,說明「活動正在啓動作爲一項新任務,因此取消活動結果」。
我試着用不同的啓動模式,動作過濾器(android.intent.action.PICK)進行應用程序B的活動,但沒有做任何改變。
我想要做不可能的事情嗎?據我所知,我試圖做的應該類似於使用第三方活動從設備的照片庫挑選圖片。
編輯:
好吧,我試着刪除從活動B發射器類別,但它仍然無法正常工作。這是我的活動:
<activity android:name=".${CLASSNAME}" android:label="@string/app_name" android:configChanges="mcc|mnc|locale|keyboardHidden|orientation" android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.PICK" />
</intent-filter>
</activity>
有沒有人真的有這個工作?我開始懷疑,啓動另一個應用程序的活動永遠不會返回結果,因爲無論您將其放在「意圖過濾器」中,它總會啓動一項新任務。
發佈您正在使用的代碼構建並啓動ActivityB的意圖。你應該能夠放置這樣的東西:'this.setResult(Activity.RESULT_OK,data);'在第二個Activity中返回第一個。 – FoamyGuy 2012-08-12 03:47:25
你可以發佈你的清單文件嗎?也許活動B有一些特殊的標籤 –
nandeesh
2012-08-12 06:53:22
嗯...活動B有 這是否會導致問題?我現在不在我的工作機器上。我會嘗試刪除它,看看是否有效。 事情是從我讀過的,開始一個不屬於同一個軟件包一部分的活動將總是從一個新的任務開始?如果是這種情況,startActivityForResult將無法在另一個apk上啓動外部活動? –
2012-08-12 13:50:05