我一直试图解决这个问题几天,但我没有运气。这是问题所在。
所以我有一个打开应用内结算窗口的服务窗口,除了一个以外的每个场景都可以正常工作:当用户按下手机上的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
我知道这个错误,但我该如何处理呢?仅在使用主页按钮关闭应用程序时才会发生。
答案 0 :(得分:0)
之所以发生这种情况,是因为你没有在没有调用onDestroy的场景中取消绑定服务,例如“按Home”,请注意按home只调用“onPause”和“onStop”,因此,为了修复这个问题你需要在“onPause”期间执行onDestroy(unbind服务)中的操作并再次绑定“onResume”,所以当用户按下home时,正确调用解绑定方法,并且当重新打开活动时,“onResume”将尝试再次绑定服务......
问候!