Android 背景蓝牙应用程序-线程?

Android 背景蓝牙应用程序-线程?,android,multithreading,bluetooth,Android,Multithreading,Bluetooth,我还是Android开发新手,但我目前正在进行一个项目,该项目要求蓝牙接口与蓝牙设备保持持续通信。我一直在阅读服务,意向服务,自动任务,但我仍然感到困惑。我想我不应该使用AsyncTask,因为它是用来处理非常短的任务的?如果使用IntentService,如何生成多个线程来检查蓝牙设备是否已连接、发送和接收 我用这个作为我的参考。其中的connectThread是一个线程,当连接到蓝牙设备时,它将启动connectedThread 谢谢 Ken我使用一个动作请求来启用意图,以启动Tractiv

我还是Android开发新手,但我目前正在进行一个项目,该项目要求蓝牙接口与蓝牙设备保持持续通信。我一直在阅读
服务
意向服务
自动任务
,但我仍然感到困惑。我想我不应该使用
AsyncTask
,因为它是用来处理非常短的任务的?如果使用
IntentService
,如何生成多个线程来检查蓝牙设备是否已连接、发送和接收

我用这个作为我的参考。其中的
connectThread
是一个线程,当连接到蓝牙设备时,它将启动
connectedThread

谢谢


Ken

我使用一个动作请求来启用意图,以启动TractivityForresult()。这将导致调用:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == imu.requestCode) {
            if (resultCode == RESULT_OK) {
            getPairedDevice();  // my function 
            initializeConnection(); // my function
        }
    }
}
initializeConnection()创建一个新线程,用于初始化我的输入套接字,为蓝牙输入处理创建另一个线程,并创建我的输出线程。这些函数的代码段包括:

myServerSocket = dev.createInsecureRfcommSocketToServiceRecord(uuid); 
myBluetooth.cancelDiscovery();
myServerSocket.connect();
myBluetoothInputThread = new BluetoothInputThread(myServerSocket, handler);                    myBluetoothInputThread.setPriority(Thread.MAX_PRIORITY); 
myBluetoothInputThread.start();
myBluetoothSocketOutputStream = myServerSocket.getOutputStream();
BluetoothInputThread扩展线程以创建用于监视输入流的单独进程。此类通过Handler.sendMessage与其父类通信