首先,我是Android环境的新手,如果我说一些没有意义的话,请原谅。
现在的情况
我正在做一个有两个活动的应用程序: MainActivity和GraphActivity。
我还有一个 BLEConnection 类,我希望它知道这两个活动。MainActivity 只有一个按钮。
onClick() 按钮:
GraphActivity graph_activity = new GraphActivity();
BLEConnection radino_right = new BLEConnection(mainThread, graph_activity);
btnConnect.setText("Connecting");
BLEConnection 类有一个 BluetoothGattCallback() 对象,当它检测到 onConnectionStateChange() 时,它会调用 MainActivity 中运行的线程。
如果蓝牙设备已连接,String connect_status = "Connected",则该线程创建一个 Intent 并执行 startActivity()。
MainActivity 中运行的线程:
Thread mainThread = new Thread(new Runnable() {
@Override
public void run() {
if(connect_status.equals("Connected")){
Intent nextScreen = new Intent(getApplicationContext(), ((Object) graph_activity).getClass());
//startActivityForResult() instead of startActivity() because I want to finish() it from the MainActivity if the connection with the device is closed.
startActivityForResult(nextScreen,1);
}
else{
if(nextScreen != null){
finishActivity(1);
}
}
}
});
故障排除
我遇到的故障排除是我注意到属于 MainActivity 并且我传递给 BLEConnection 的对象 graph_activity 与使用 startActivity() 方法启动的真实 GraphActivity 不匹配。
有谁知道我该如何解决这个问题?
我认为,如果我在创建活动对象时执行“新”操作,它会生成一个新线程 GraphActivity,当我调用 startActivity() 时,它会生成同一类的另一个线程,但未与我创建的先前对象链接前。我不知道如何解决。