类和主要活动Android之间的通信

时间:2013-07-31 18:40:34

标签: android class broadcastreceiver communication main-activity

我是Android的新手,所以我希望你能原谅我的无知

我做了一个用我的电话来控制一些蓝牙设备的活动,现在一切正常我想从这个活动中产生一个新类,一个负责所有蓝牙通信的课程。

我有一些问题:

第一:在我的活动中,我使用一个广播接收器来收听蓝牙适配器的一些动作,如STATE_ON,BOND_BONDED ......使用这个动作我更新了我的观点,我称之为一些方法等等。

那么,有可能继续在我的班级内部继续收听广播接收器,然后将更改发送到我的主要活动以更新视图等等吗?

第二:我真的需要将我的蓝牙课程的信息发送到我的主要活动,我从我的设备读取的信息,来自广播接收器的信息......所以,这是在课堂之间传递信息的最佳方式。主要活动?

好的,非常感谢你的帮助:)。

1 个答案:

答案 0 :(得分:0)

从主线程调用BroadcastReceiver的onReceive()方法: “此方法始终在其进程的主线程内调用”(http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context, android.content.Intent))。

这意味着您可以从onReceive()方法更新您的ui。您需要做的就是使用像这样的本地类:

BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // update the ui
    }
};

以编程方式注册此接收器(而不是在清单中定义它),你很高兴:

Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)