2014-03-02 22 views
0

我有一個IntentService將定期(每天一次)擦除實際的數據庫並用最近的提要重新填充數據,之後會發送通知給用戶。 我的問題是當用戶在IntentService輪詢服務器的同時使用該應用程序。 他正在查看數據庫中不再存在的舊饋送,並且他在任何應用程序崩潰時點擊該節目。 我想知道是否有一種方法來連接服務器,只有當該應用程序目前沒有被使用。Android-如何在用戶不使用應用程序時調用IntentService

回答

0

幾種方法。如果它在錯誤的時間運行,或者推遲它,你是否想跳過這一天?

如果你想跳過它(最簡單) - 在你的Service類中有一個靜態變量,當Activity的onCreate被調用時設置爲true,而在onDestroy中設置爲false。在接觸數據庫之前讓服務檢查該變量的值。

如果你想放棄它,同樣的想法可以工作,但使用信號量。

這可以在活動已經運行時停止服務。相反的順序仍然會崩潰。爲了解決這個問題,你需要以與服務相同的方式來檢查你的活動,但是如果服務已經在運行,請設置一個UI,指出「稍後再試一次」或類似的東西。

相關問題