当我在三星上呼叫startActivityForResult(new Intent(getActivity(), VkAuth.class), VK_ID);
时(在HTC和Nexus上一切正常),在创建VkAuth活动之前调用带有requestCode == VK_ID的onActivityResult
和结果代码0(已取消)。<登记/>
父活动有android:launchMode="singleInstance"
。从附加到父Activity的Fragment调用startActivityForResult
。
登录
E/AuthenticationFragment: vkLogIn
E/AuthenticationFragment: startActivityForResult 9101
E/AuthenticationFragment: onPause
E/MainActivity: onPause
E/MainActivity: onActivityResult before super: request - 271245, result - 0
E/AuthenticationFragment: request - 9101, result - 0
E/MainActivity: onActivityResult after super: request - 271245, result - 0
E/AuthenticationFragment: onPause
E/MainActivity: onPause
E/VkAuth: onCreate
E/VkAuth: onResume
答案 0 :(得分:2)
我删除了android:launchMode =“singleInstance”后,这个误入歧途的
答案 1 :(得分:1)
我在运行Android 4.4.2 API 17的三星Galaxy S4上有类似的行为。 我正在开始一个活动:
Intent intent = new Intent(this, MyActivity.class);
startActivityForResult(intent, CUSTOM_CODE);
然而onActivityResult
被resultCode=0
(ACTIVITY.RESULT_CANCELED
)立即调用。它在其他设备上运行得非常好。
根据@Yarh的说法,我查看了AndroidManifest,并发现执行startActivityForResult
的活动有android:launchMode="singleInstance"
。
删除此行肯定解决了这个问题。
答案 2 :(得分:-1)
你还没有发布足够的代码让我们真正看到发生了什么,但我会检查以下内容:
当您从刚开始使用startActivityForResult
的活动返回时,请检查您是否setResult
到RESULT_OK
:
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);