2013-12-20 52 views
2

有很多線程都有類似的問題和建議要解決。我已經嘗試過所有的方法,除了將服務置於前臺之外,沒有其他方法適用於我的情況,這是我迄今不想做的。儘管我很忙,但我的後臺服務被終止並重啓了很長時間的等待

我無法發表評論到現有的主題,因爲我沒有足夠的聲譽,我想問,所以不能回答。這是提出我的問題並尋找專家意見和建議的唯一選擇。

類似問題的現有線索的討論,

Time taken for Android Service to restart after being forcibly killed

Background Service getting killed in android

Android: Scheduling restart of crashed service with HUGE delay?

我的問題:

我有一個服務是在引導時啓動(聽取意見nt BOOT_COMPLETED) 我啓動了一個線程,該線程通過套接字與其他服務進行交互,並在服務被終止時被中斷(onDestroy)

在手機上使用Wifi,我的服務永遠不會被android殺死,它按預期工作。

如果我只切換到3G(在& T SIM),我的服務被殺死約。之後1800秒(30分鐘)並計劃在約10秒內重新啓動。 3600秒(1小時)。所有這段時間,服務啓動的線程正在執行SQLLite調用並與此其他服務進行交互。

Android認爲我的服務已被閒置超過1800+秒,並且會在很長的重啓時間內終止它。

問題:

  1. 什麼我需要做的,告訴的Android ActivityManager,我的服務使用一個線程紡它做的工作,所以它不應該被殺死。僅適用於3G。

  2. 如何將計時器減少到20秒以下。 1小時太長了。 我沒有使用AsyncTask來旋轉其他線程,永久睡眠1秒,但仍然我的服務被殺死。

  3. 當使用3G與Wifi來確定要殺死哪個服務時,Android的行爲如何改變?

回答

0

我發現android不支持長時間運行的後臺服務。因此,當我的服務需要與其他服務保持溝通時,當網絡帶寬受到更多限制時,尤其會在3G/4G上遇難。

我切換回前景模式,現在工作正常。我仍然想聽聽是否有辦法避免3G/4G上的前景模式。

相關問題