尝试从活动组启动活动时,似乎无法获得任何结果。我在活动和活动组中放了一个onactivityresult?具体来说,我试图让用户从Intent.ACTION_GET_CONTENT中选择一张照片/视频,但我从来没有得到任何回报?我做错了什么?
以下是我如何调用代码:
Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT);
pickMedia.setType("video/*");
startActivityForResult(pickMedia,12345);
有什么想法吗?
答案 0 :(得分:41)
我遇到了类似的问题。我有一个ActivityGroup管理子活动。其中一个子活动称为类似的外部意图(我的应用程序外部)。它从未在启动它的子活动中调用onActivityResult。
我终于弄清楚/记得这个问题是因为Android只允许嵌套的子活动层......即子活动不能嵌套子活动。要解决这个问题:
getParent().startActivityForResult()
onActivityResult
。所以我创建了ActivityGroup
的子类并处理了这个onActivityResult
。getLocalActivityManager().getCurrentActivity()
获取当前活动即可。我的子活动继承自定义活动,因此我在该子类中添加了handleActivityResult(requestCode, resultCode, data)
,以便ActivityGroup
进行调用。答案 1 :(得分:4)
在您的父母活动中
protected void onActivityResult(int requestCode, int resultCode, Intent intent){
if (requestCode == YOUR_REQUEST_CODE) {
CHILD_ACTIVITY_NAME activity = (CHILD_ACTIVITY_NAME)getLocalActivityManager().getCurrentActivity();
activity.onActivityResult(requestCode, resultCode, intent);}}
所以你的孩子活动onActivityResult将会运行。