亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

服務與內容服務

服務與內容服務

服務與內容服務有誰能給我舉個例子,說明可以用IntentService不能用Service(反之亦然)?我也相信IntentService在不同的線程中運行,而Service不會的。因此,據我所見,在自己的線程中啟動服務就像啟動IntentService..不是嗎?如果有人能幫我解決這兩個問題,我將不勝感激。
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

Tejas Lagvankar寫了一個很好的關于這個話題。下面是Service和IntentService之間的一些關鍵區別。

什么時候使用?

  • 這個服務可以在沒有UI的任務中使用,但不應該太長。如果需要執行長任務,則必須在服務中使用線程。

  • 這個觸角服務可用于長任務,通常不與主線程通信。如果需要通信,可以使用主線程處理程序或廣播意圖。另一種使用情況是需要回調(意圖觸發的任務)。

怎么觸發?

  • 這個服務由調用方法觸發。startService().

  • 這個觸角服務使用意圖觸發,則生成新的輔助線程和方法。onHandleIntent()在這個線程上調用。

觸發自

  • 這個

    服務

    觸角服務

    可以從任何線程、活動或其他應用程序組件觸發。

跑上

  • 這個服務在后臺運行,但它運行在應用程序的主線程上。

  • 這個觸角服務在單獨的工作線程上運行。

限制/缺點

  • 這個服務可能會阻塞應用程序的主線程。

  • 這個觸角服務無法并行運行任務。因此,所有連續的意圖都將進入工作線程的消息隊列并按順序執行。

什么時候停下來?

  • 如果您實現了服務,您有責任在服務工作完成時停止服務,方法是調用stopSelf()stopService()..(如果只想提供綁定,則不需要實現此方法)。

  • 這個觸角服務在處理完所有啟動請求后停止服務,因此您不必調用stopSelf().


查看完整回答
反對 回復 2019-06-20
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

服務

  • startService()

  • 從任何

    Thread

  • 跑上

    Main Thread

  • 可以阻塞主(UI)線程。始終將服務中的線程用于長任務。
  • 一旦任務完成,我們就有責任通過調用停止服務。

    stopSelf()

    stopService()

觸角服務

  • 它執行長任務,通常不與主線程通信,如果需要通信,則由

    Handler

    BroadcastReceiver

  • 調用通道

    Intent

  • 觸發自

    Main Thread

  • 在單獨的線程上運行。
  • 無法并行運行任務,多個意圖在同一個工作線程上排隊。


查看完整回答
反對 回復 2019-06-20
  • 3 回答
  • 0 關注
  • 610 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號