[英]Android Background Service and Thread
我正在使用Rabbit MQ pub / sub技術開發android應用程序。 我想在android后台服務中監聽傳入的消息。 我可以在android后台服務中運行線程嗎?
public class MessagingService extends Service {
private Thread subscribeThread;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
subscribeThread = new Thread(new Runnable() {
@Override
public void run() {
//Connecting to server and listen incoming message.
}
});
subscribeThread.start();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
subscribeThread.interrupt();
}
}
是的,您可以在Android Service中運行新線程。
請在此處查看文檔中的注釋: http : //developer.android.com/guide/components/services.html
警告:服務在其宿主進程的主線程中運行-該服務不會創建自己的線程,也不會在單獨的進程中運行(除非另行指定)。 這意味着,如果您的服務要執行任何CPU密集型工作或阻止操作(例如MP3播放或聯網),則應在服務內創建一個新線程來執行該工作。
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.