##Serivce
Serviceについては以前触れたので、こちらの記事を参照願いたい。
・Service
https://qiita.com/QiitaD/items/5c313076b7b99823ce1a
・IntentService
https://qiita.com/QiitaD/items/96e70cd189d0c4385393
##終了方法
Serviceは終了するときにStopService()かstopSelf()を明示的に書かなければ終了しない。しかし、IntentServiceの場合はそれをする必要がなく、処理が終わったら自動的に終了してくれる。
##スレッド
Serviceは**Activityと同じUIスレッド(メインスレッド)で動いているが、IntentServiceはメインスレッドとは別のスレッド(内部のHandlerThread)**で動いている。
そのため例えば、HTTP通信をServiceに任せる時、IntentServiceは非同期処理に向いているので通信できる。しかしServiceクラスで行おうとすると「NetworkOnMainThreadException」が発生する。
またIntentServiceはUIスレッドで動いていないので、Viewを操作できない。(BroadcastReceiverやCallBackを使わなければならない。)
ネットに転がっているサンプルにはToastをプログラム内に組み込んでいるものもあったが、Toastも出なかった。(Handler使えば可能になるという記事もあった https://qiita.com/wakwak/items/5a03127aba3effa845f8)
##感想
非同期処理関連はService以外にもAsyncTaskがあるのでかなり厄介に感じた。向いてないクラスを使うと、品質を落としかねないので気を付けたい。
##参考URL
・Android 非同期処理についてまとめるメモ
https://qiita.com/tk_daze/items/bc83c69750e5f2e4015c
・IntentService と Serviceの違い
https://oc-technote.com/android/intentservice%e3%80%80%e3%81%a8%e3%80%80service%e3%81%ae%e9%81%95%e3%81%84/