从Activity
扩展SherlockFragmentActivity
(来自优秀的ActionBarSherlock
库),我提出了一个简单的请求,要求从相机中获取图像:
public void getPhoto() {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// .....
}
执行时,onActivityResult()
会在相机应用程序打开时(拍照前)调用resultCode
零(以及匹配的requestCode
)。如果我然后拍照并接受它,则不会调用onActivityResult()
。
我知道支持库中的Fragment
存在类似的错误,但我在Fragment
和Activity
中看到了这个问题。
我已经检查过,我正在调用右startActivityForResult()
(即Fragment
或Activity
),我已经完成了我能想到的代码。我开始怀疑使用onActivityResult
时Fragment
中未调用支持库错误({1}}是否也会影响Activity
,但我无法相信ABS休息ActionBarSherlock
。
我错过了什么?
答案 0 :(得分:2)
清单中Activity
被指定为singleInstance
。我现在知道这与startActivityForResult()
不兼容,当Activity
更改为singleTop
时,一切都按预期工作。