Android 应用内计费前景

Android 应用内计费前景,android,eclipse,Android,Eclipse,我已经开始工作了,但我正在努力完善它一点。我注意到,当我在《愤怒的小鸟》中尝试应用程序内计费时,它会直接在应用程序顶部打开,但我的应用程序会将应用程序内计费拉到前台/桌面。我阅读了文档,其中指出singleTop必须关闭,反射也必须用于给定的活动上下文,而不是应用程序上下文。我已经证实,我已经完成了所有这些事情,但它仍然拉到前景。有什么想法吗 我的核实: 我有一个活动叫做MyActivity Log.d(“TEST”,mContext.getClass().getName()) 用MyActiv

我已经开始工作了,但我正在努力完善它一点。我注意到,当我在《愤怒的小鸟》中尝试应用程序内计费时,它会直接在应用程序顶部打开,但我的应用程序会将应用程序内计费拉到前台/桌面。我阅读了文档,其中指出singleTop必须关闭,反射也必须用于给定的活动上下文,而不是应用程序上下文。我已经证实,我已经完成了所有这些事情,但它仍然拉到前景。有什么想法吗

我的核实: 我有一个活动叫做MyActivity

Log.d(“TEST”,mContext.getClass().getName())

用MyActivity回应

并在Android清单中显示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);
        }
    }
}

我试图完成的是应用内计费提示,无论它是否完成交易或取消,都要恢复到我的游戏,而不是简单地关闭和完成。我目前的一个解决办法是重新开始游戏活动,这将导致重新加载所有内容并将玩家放回主菜单页。

我不确定是否理解您的问题。如果您的意思是要启动一个新的
活动
,该活动正在从以前的
活动
切换,那么请尝试使用
android:style/Theme.Dialog
进行“应用内计费”
活动
。我正在尝试让应用内计费活动在我的应用程序堆栈上运行,而不是在自己的堆栈上运行。我认为android:style/Theme.Dialog
不会有帮助。应用内计费的示例应用程序实现了这一点,但在任何地方都不包括这一点。我已经在我的应用程序中实现了这个示例应用程序,所以它应该是类似的,但是有些事情正在发生,除非您展示代码来演示如何尝试这样做,否则没有人可以帮助您。你的问题还不清楚,例如,我不会安装《愤怒的小鸟》只是为了弄明白你的意思“…在《愤怒的小鸟》中,它直接在应用程序顶部打开…我已经编辑了这个问题,我希望它能澄清我想要实现的目标。如果你单独构建了应用内计费示例应用程序,那么它将始终作为单独的应用程序打开。在我看来,“愤怒的小鸟”团队只是简单地提取了代码并将其整合到他们自己的应用程序中。这就是我所能想到的。