问题描述
我已经在我的应用程序中创建了一个独特的线程,目的是创建一个与之通信的RFCOMM套接字。 但是,我希望在服务中进行实际的通信,以便它可以在诸如方向更改之类的愚蠢事情中持续存在。
像这样:
private class grabSocket extends Thread {
private BluetoothSocket socket = null;
public SocketRetriever(BluetoothDevice device) {
socket = device.createRfcommSocketToServiceRecord(UUID);
}
}
现在如何将该套接字传递给服务? 如果我尝试从线程内部执行此操作,那么服务将使该线程失效,还是仅在线程运行后就死掉?
1楼
如@Submersed所述,您可以使用活页夹将此套接字传递给您的服务。
如果我尝试从线程内部执行此操作,那么服务将使该线程失效,还是仅在线程运行后就死掉?
如果启动服务,则该服务将一直起作用,直到您明确调用stopService
或stopSelf
。
如果您绑定到它,它将一直工作到最后一个客户端解除绑定为止。
因此,服务的生命周期不取决于线程的生命周期。