0

几天来我一直在尝试解决这个问题,但我没有运气。这就是问题所在。

所以我有一个服务窗口,可以打开应用内计费窗口,在除以下情况之外的所有情况下都可以正常工作:当用户通过按下手机上的 HOME 按钮关闭屏幕然后重新打开应用程序时。窗口仍然打开,但应用程序在后台崩溃。因此,应用程序崩溃然后窗口仍然打开,用户仍然可以对其做出反应。

当用户按下应用程序帐户时,它只是一个黑屏,没有别的。

我有专门的服务:

这是在“onCreate”活动中创建的。

    ServiceConnectionToBilling mServiceConnection = new ServiceConnectionToBilling();
    bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConnection, Context.BIND_AUTO_CREATE);
    mInAppPurchasingEngine = new InAppPurchasingEngine(this, this, mServiceConnection);

所以我的问题是,我该如何处理?我一直在尝试在用户按下 HOME 按钮之前调用返回按钮(因为这会关闭服务窗口),但当然覆盖 HOME 按钮在 Android 上只是失败,所以我不知道如何处理这个问题。

PS我有这个:

public void onDestroy()
{ 
    if(mServiceConnection != null)
    {
        unbindService(mServiceConnection);
    }

    mGameScreen.DestoryEngine();

    super.onDestroy();
    finish();
}

堆栈跟踪:

http://pastebin.com/gakrL7qV

我知道这个错误,但我到底该如何处理呢?仅在使用主页按钮关闭应用程序时发生。

4

1 回答 1

0

发生这种情况的原因是因为您没有在没有像“Pressing Home”那样调用 onDestroy 的情况下取消绑定服务,请注意按下 home 只会调用“onPause”和“onStop”,因此,为了解决这个问题你需要在“onPause”期间在 onDestroy(取消绑定服务)中执行您正在执行的操作并再次绑定“onResume”,因此当用户按下主页时,取消绑定方法被正确调用,并且当重新打开活动时,“onResume”将尝试绑定再次服务...

问候!

于 2013-07-03T01:04:02.190 回答