2013-09-28 21 views

回答

0

是服務殺沒有完成它的任務或者是執行其任務

一旦最後一個綁定連接綁定的服務被破壞後,如果沒有人叫startService()將命令發送到服務(這本身並沒有被stopService()stopSelf()調用所逆轉)。

如果您希望所有連接後進入可能是未綁定的一些「任務」了,你會需要使用startService()某處,或移動任務到一個單獨的服務(例如,一個IntentService)。

+0

讓我問我的問題更具體,我有一個監視下載服務(我使用IntentService)和服務的更新進步活動,只要它存在的活動。活動的職責是控制下載(簡歷,暫停......)的過程,爲此,我想保留下載的軌道時活動不存在。(所以我覺得移動到不同的服務將無法正常工作) –

+0

@Sourena_ :如果你正在使用'IntentService',你不應該使用綁定模式恕我直言。使用'startService()'將下載請求發送到服務。讓服務使用'LocalBroadcastManager',Square的Otto,greenrobot的EventBus或類似的方法來提醒觀察者進度。請「來控制下載的過程(簡歷,暫停......)」將通過向'startService()的調用'來完成,設置狀態標誌,你的下載後臺線程將監測(例如,'AtomicBoolean')。 – CommonsWare

+0

@Sourena_:無論如何,如果你正在使用'IntentService',你必須使用'startService()'來啓動它(否則,那是在你實現中的錯誤)。無論您的綁定連接是否被綁定,該服務都將保持運行狀態,直到「onHandleIntent()」處理完下載爲止。當然 – CommonsWare

相關問題