我有第一个建立BT连接的Activity。有一个选项呈现给用户,并根据他们的选择,将加载一个不同的活动。
问题是,两个活动都需要BT连接,我没有看到破坏一个连接只是为了制造另一个连接。
有没有办法可以在活动之间传递连接?
有没有人为我或某个链接提供一些示例?
我尝试过“class MyApplication extends Application
”,但后来我无法使用:
super.onCreate(savedInstanceState);
setContentView(R.layout.blablabla);
这可能是一个非常愚蠢的问题,但我只是在Android + - 2周。
答案 0 :(得分:5)
您是否尝试过使用Application对象将蓝牙连接存储在对象中并使用您的活动来获取它?
尝试这样的事情。 (注意:我从未使用过Android上的蓝牙,因此我不知道要使用哪些相关类。在这种情况下,我将使用BluetoothDevice
,因为它似乎是基于库的正确类文档)
public class MyApplication extends Application {
BluetoothDevice device;
...
public synchronized BluetoothDevice getBtConnection() {
if (device == null) {
// construct a BluetoothDevice object and put it into variable device
}
return device;
}
}
这样,您的第一项活动必须这样做:
public class FirstActivity extends Activity {
private BluetoothDevice device;
...
@Override
protected void onCreate(Bundle b) {
super(b);
...
device = ((MyApplication) getApplication()).getBtDevice();
...
}
...
}
然后,只要您的其他活动需要使用该连接,他们只需要调用getBtDevice()
,因为FirstActivity
已经实例化了它。
答案 1 :(得分:0)
答案 2 :(得分:0)
我知道这是一个老问题,但对于访问此主题的新人来说:
我认为Kibibyte的答案也可行,但除此之外还可以使用(Bound)Service
。即使应用程序关闭,这也会运行
答案 3 :(得分:-1)
BluetoothChatService mChatService=DeviceListActivity.chatService