這不是一個重複的問題。我只發現this問題相關,但它沒有任何工作解決方案。startActivityForResult()不適用於外部活動
我有什麼
我有兩個應用程序都是由我創造,應用程序A和B.應用我的要求是從應用程序打開一個應用B上的一個按鈕的點擊。現在,應用程序B將執行一些處理並向App A返回一個小的狀態。這應該是可能的不是嗎?
我做了什麼
Intent intent = getActivity().getPackageManager().getLaunchIntentForPackage(Config._PACKAGE);
getActivity().startActivityForResult(intent, 6699);
這將打開應用B完美。現在在應用B中,
Intent returnIntent = new Intent();
returnIntent.putExtra("STATUS", statusCode);
setResult(RESULT_OK, returnIntent);
finish();
而這是我在活動上的onActivityResult()
方法。儘管我從片段開始了活動。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "ON ACTIVITY RESULT");
if (requestCode == 6699) {
if (resultCode == RESULT_OK) {
Log.d(TAG, "RESULT OK");
}
if (resultCode == RESULT_CANCELED) {
Log.d(TAG, "RESULT NOT OK");
}
}
}
問題
的onActivityResult()
當我開始應用B與RESULT_CANCELLED.
活動這怎麼可能被剛剛叫什麼名字?是因爲它的一項新任務嗎?
但是當我在應用程序B上調用finish()
,它關閉並將我帶回應用程序A,但是這次不會調用onActivityResult()
?我該如何解決這個問題?
這是一個非常基本的要求,應該有一個解決方案。
從[文檔](http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29):「如果您正在啓動的活動使用singleTask啓動模式,它將不會在您的任務中運行,因此您將立即收到取消結果「 –
在其清單中沒有針對應用B中的活動提及的launchMode。那麼什麼是錯的? –