这不是一个重复的问题。我只发现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。那么什么是错的? –