2013-07-26 46 views
0

我已經實現了一個播放器服務,當音樂播放時關閉應用程序,然後應用程序崩潰並在調用onDestroy服務時重新啓動手機。 我該如何解決這個問題?onDestroy服務崩潰並重新啓動手機

@Override 
    public void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 
     if (!PlayerServices.mp.isPlaying()) { 
      stopService(playerService); 
      cancelNotification(); 
     } 
    } 

謝謝

+0

你得到什麼日誌。首先關閉播放器播放歌曲的靜態方法是**錯誤** – Blundell

+0

在AVD不顯示任何錯誤bcoz此應用程序讀取外部存儲器,所以我安裝了這個應用程序在我的手機 – user2586364

+0

所以? LogCat說什麼? – Blundell

回答

1

更改代碼的順序爲:在最後

@Override 
public void onDestroy() { 
    // TODO Auto-generated method stub 
    if (!PlayerServices.mp.isPlaying()) { 
     stopService(playerService); 
     cancelNotification(); 
    } 
    super.onDestroy(); 
} 

呼叫super.onDestroy()。

+0

我已經嘗試把super.onDestroy()放在最後,但應用程序仍然崩潰並重新啓動 – user2586364

+0

如果沒有更多信息,很難判斷髮生了什麼。也許你可以從logcat顯示你的日誌。 –

+0

是的,當然,但這個應用程序讀取存儲..我不知道從驅動器讀取。好。我會盡力找到問題。謝謝大家:) – user2586364

-2

你不應該爲任何事情調用super.onDestroy()。在這種特殊情況下,你正在銷燬服務,然後試圖阻止它,這沒有任何意義。你也應該看看你的logCat輸出,以確保這是真的。

一般來說,如果一個生命週期方法期望你調用通過你繼承的基類的方法,javadoc會這樣說。例如,看看Activity.onPause()。

+1

永遠不要調用'super.onDestroy()'是非常錯誤的建議,謹慎編輯它來解釋你實際上的意思? – Delyan

+0

我不知道其他方式在播放音樂時在主屏幕中銷燬應用程序 – user2586364

+0

super.onDestroy()不是必需的,並且可能會調用奇怪的結果。如果您對onDestroy()中的系統回調做出響應,請完成您的工作。這就是你需要做的。系統會爲您破壞組件。 –

相關問題