更新:我现在尝试从常规的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所提到的相反,用于requestCodestartIntentSenderForResult()不能任意使用!我没有具体的临界值,但是低于1000的值似乎可以正常工作。

10-08 17:05