我正在使用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();
}
}
答案 0 :(得分:0)
是的,您可以在Android服务中运行新线程。
请参阅此处文档中的说明:http://developer.android.com/guide/components/services.html
警告:服务在其托管进程的主线程中运行 - 该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定)。这意味着,如果您的服务要进行任何CPU密集型工作或阻止操作(例如MP3播放或网络),您应该在服务中创建一个新线程来完成这项工作。
希望这会对你有所帮助。