2013-07-02 36 views
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 

我知道這個錯誤,但我在地球上是如何應對的呢?只有在使用主頁按鈕關閉應用時纔會發生。

+0

從Logcat發佈堆棧跟蹤 – dymmeh

+0

發佈完整堆棧跟蹤。您發佈的內容不是跟蹤,它是系統崩潰後打印的警告。 –

+0

我已經發布了它。沒有辦法解決這個問題。 –

回答

0

之所以會發生這種情況,是因爲您並未在onDestroy不像「Pressing Home」那樣被調用的場景中解除綁定服務,請注意,按下home僅會調用「onPause」和「onStop」,因此,爲了解決這個問題,你需要在onPause(onPause)期間做onDestroy(unbind service),並再次綁定onResume,所以當用戶按回家時,正確調用unbinding方法,並且當活動重新打開時,「onResume」將嘗試再次綁定服務...

商祺!

+0

問題是打開時服務調用「onPaused」: - /。 –

+0

只有當你發送的東西在你的活動,otherway工作流程必須「的onCreate」,「在onStart」,「的onResume」 –

+0

用戶點擊一個按鈕,該服務窗口打開並調用的onPause()。用戶使用home關閉應用程序onPause(),onStop()被調用。用戶再次打開應用程序onStart(),onResume()被調用。無論解綁和綁定在哪裏,該應用都會崩潰。 –

相關問題