应用程序崩溃在主页按钮上打开服务

时间:2013-07-02 23:39:06

标签: android

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

所以我有一个打开应用内结算窗口的服务窗口,除了一个以外的每个场景都可以正常工作:当用户按下手机上的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

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

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为你没有在没有调用onDestroy的场景中取消绑定服务,例如“按Home”,请注意按home只调用“onPause”和“onStop”,因此,为了修复这个问题你需要在“onPause”期间执行onDestroy(unbind服务)中的操作并再次绑定“onResume”,所以当用户按下home时,正确调用解绑定方法,并且当重新打开活动时,“onResume”将尝试再次绑定服务......

问候!