更新:我现在尝试从常规的Activity
运行相同的流,并获得相同的结果-onActivityResult()
未触发。
在两个differenet物理设备上测试(运行android 4.4和5.1)
注意:这个问题之前是asked,但是这种情况有所不同,因此可接受的答案无法解决。
从MainActivity
开始一个FragmentDialog
:
public void ShowDialog(View v)
{
MyDialog myDialog = new MyDialog();
myDialog.show(getFragmentManager(),"");
}
然后,从
MyDialog
PendingIntent pendingIntent = bundle.getParcelable(BUY_INTENT);
if( null == pendingIntent) return false;
getActivity().startIntentSenderForResult
(pendingIntent.getIntentSender(), REQUEST_CODE, new Intent(), 0, 0, 0);
以上确实调用了Google Billing Fragment,但是,无论是
MyDialog.onActivityResult()
还是MainActivity.onActivityResult()
都不会被调用。 最佳答案
YGTBFKM!
经过长时间的功夫训练,我终于发现,与documentation所提到的相反,用于requestCode
的startIntentSenderForResult()
不能任意使用!我没有具体的临界值,但是低于1000的值似乎可以正常工作。