我有inAppBilling工作,但我正在努力改进它。我注意到,当我在“愤怒的小鸟”中尝试使用应用计费时,它会直接在应用程序的顶部打开,但我的应用程序会将应用程序计费转移到前台/桌面。我阅读了文档并且它声明必须关闭singleTop并且必须使用反射并且给出活动上下文而不是应用程序上下文。我已经证实我完成了所有这些事情,但它仍然处于前台。有什么想法吗?
我的验证: 我有一项名为MyActivity的活动
Log.d("TEST", mContext.getClass().getName());
使用MyActivity回复
和Android Manifest for MyActivity
android:launchMode="standard"
编辑:
启动结帐活动的代码
void startBuyPageActivity(PendingIntent pendingIntent, Intent intent) {
if (mStartIntentSender != null) {
// This is on Android 2.0 and beyond. The in-app buy page activity
// must be on the activity stack of the application.
try {
// This implements the method call:
// mActivity.startIntentSender(pendingIntent.getIntentSender(),
// intent, 0, 0, 0);
mStartIntentSenderArgs[0] = pendingIntent.getIntentSender();
mStartIntentSenderArgs[1] = intent;
mStartIntentSenderArgs[2] = Integer.valueOf(0);
mStartIntentSenderArgs[3] = Integer.valueOf(0);
mStartIntentSenderArgs[4] = Integer.valueOf(0);
mStartIntentSender.invoke(mActivity, mStartIntentSenderArgs);
Log.d("TAG", mActivity.getClass().getName());
} catch (Exception e) {
Log.e(TAG, "error starting activity", e);
}
} else {
// This is on Android version 1.6. The in-app buy page activity must be on its
// own separate activity stack instead of on the activity stack of
// the application.
try {
pendingIntent.send(mActivity, 0 /* code */, intent);
} catch (CanceledException e) {
Log.e(TAG, "error starting activity", e);
}
}
}
我想要完成的是在应用内结算提示是否完成交易或取消以恢复到我的游戏而不是简单地关闭和完成。我目前的修复方法是再次启动游戏Activity,这将导致重新加载所有内容并将播放器放回主菜单页面。