簡體   English   中英

如何在單獨的線程上運行服務?

[英]How can I run a service on a separate thread?

我需要在一個單獨的線程上運行服務。 這是因為它訪問一個可能需要5-10秒的Web服務,我不想得到ANR。 我也將對此服務具有約束力。 我找到了一種在單獨的線程中啟動服務的方法,例如:

Thread t = new Thread(new Runnable() {

            public void run() {
                //Launch and/or Bind to service here
            }
        });
        t.start();

但是我相信這只會在新線程中運行啟動代碼,而服務本身則在主線程中運行。 那么我如何在另一個線程中實際運行該服務的所有代碼呢?

提前致謝

您可以使用IntentService

IntentService是服務的基類,可根據需要處理異步請求(表示為Intents)。 客戶端通過startService(Intent)調用發送請求; 根據需要啟動服務,使用工作線程依次處理每個Intent,並在工作失敗時自行停止

http://developer.android.com/reference/android/app/IntentService.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM