我有一个复制蓝牙 OBEX 协议的类。此类基于蓝牙聊天示例。onCreate()
在我的方法中构造了这个类的一个实例
bluetoothCommunicator = new BluetoothCommunicator(BaseClass.this);
这个BluetoothCommunicator
类有两个扩展 Thread 的内部类
AcceptThread
和ReadInputThread
从初始化通信套接字的基类中,我也有onResume()
和onPaused()
方法。
@Override
public void onResume() {
bluetoothCommunicator.resumeCommunicator();
}
这将调用 resumeCommunicator 方法:
public void resumeCommunicator() {
Log.i("RESUME COMMUNICATOR: ", "COMMUNICATOR IS RESUMED");
if(server == null)
Log.i("Server: ", "IS NULL");
if (server == null) {
AcceptThread server = new AcceptThread();
server.start();
}
if(!server.isAlive()) {
server.start();
}
}
在这个方法中,server
是一个实例AcceptThread
但是这种onResume
方法会给我带来一些问题。当我将我的应用程序放在后台并尝试再次打开它时,该onResume
方法被调用,但它说线程已经启动,并引发异常。仅仅通过查看方法中的代码,这听起来很奇怪resumeCommunicator
。