Android后台服务和主题

时间:2015-06-15 08:06:22

标签: android multithreading service background

我正在使用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();

}

}

1 个答案:

答案 0 :(得分:0)

是的,您可以在Android服务中运行新线程。

请参阅此处文档中的说明:http://developer.android.com/guide/components/services.html

  

警告:服务在其托管进程的主线程中运行 - 该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定)。这意味着,如果您的服务要进行任何CPU密集型工作或阻止操作(例如MP3播放或网络),您应该在服务中创建一个新线程来完成这项工作。

希望这会对你有所帮助。