2013-12-09 44 views
0

我有一個將圖片和文本上載到服務器的IntentService。 onHandleIntent(意向意圖)當IntentService停止時處理或收聽

Intent intent = new Intent(this, MyIntentService.class); 
startService(intent); 

在服務上,在不同的點,我打電話stopSelf()終止服務:我推出一個服務,。我想知道服務何時停止,並在UI停止時處理UI中的更改。另外需要注意的是,用戶可能與服務啓動時處於不同的活動狀態。

如何監聽服務何時停止?

+0

你不能自己。不過,您可以使用廣播。 – njzk2

+0

,或者如果您的服務更改了contentprovider中的數據,則contentprovider本身可能會通知數據已更改。 (這更有意義) – njzk2

+0

@ njzk2因此,使用廣播接收器,我只需要在需要監聽服務的任何活動中實例化廣播接收器? – clocksmith

回答

1

我打電話stopSelf()終止服務

爲什麼?如果您想跳過邏輯,那很好,但請允許onHandleIntent()正常結束並自行致電stopSelf()。例如,可能有更多的排隊等待處理的命令。

如何監聽服務何時停止?

使用事件總線,如LocalBroadcastManagergreenrobot's EventBus

+0

好的,謝謝,我想我不得不打電話給stopSelf(),我不知道服務在完成處理意圖時調用它自己。 – clocksmith

+0

@clocksmith:是的,'stopSelf()'是自動的。每個IntentService實例都免費。 :-) – CommonsWare