更新服务的类MainActivity的Textview
我正在尝试创建一个与蓝牙低能耗模块进行通信的Android应用程序。我能够连接到模块,读取数据等。但问题是我不知道如何从扩展Service的类(与BLE的整个连接正在进行的类)更新textview。我知道有像百万或更多这样的职位,但相信我,我尝试过。更新服务的类MainActivity的Textview
这里是MainActivity:http://pastebin.com/6yaP0dYM
这里是扩展一个类服务:http://pastebin.com/cYuAUina
如果有人能提供给我一些提示,以解决我的问题,这将是多伟大!
创建广播接收器并在服务中广播。 如果您的活动是开放的,注册接收器并在onReceive()更新UI。
接收器应在活动...
下面是工作的代码
感谢您的回复:D让你知道,如果这修复我的问题:) – user3742345 2014-10-17 17:15:29
您可以透过广播接收机值......如下,首先创建自己的IntentFilter如,
Intent intentFilter=new IntentFilter();
intentFilter.addAction("YOUR_INTENT_FILTER");
然后创建内部类广播接收器的,
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
/** Receives the broadcast that has been fired */
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction()=="YOUR_INTENT_FILTER"){
//HERE YOU WILL GET VALUES FROM BROADCAST THROUGH INTENT EDIT YOUR TEXTVIEW///////////
String receivedValue=intent.getStringExtra("KEY");
}
}
};
现在注册您的广播接收器在onResume()
如,
registerReceiver(broadcastReceiver, intentFilter);
最后注销广播接收器在onDestroy()
如,
unregisterReceiver(broadcastReceiver);
现在最重要的部分......你需要火从任何需要发送值的地方播放.....如此做,
Intent i=new Intent();
i.setAction("YOUR_INTENT_FILTER");
i.putExtra("KEY", "YOUR_VALUE");
sendBroadcast(i);
....干杯:)
感谢您的答复:D让你知道这是否解决我的问题:) – user3742345 2014-10-17 16:37:41
你想更新哪个服务类的方法textview – 2014-10-17 09:52:32
这就是我所不知道的。我应该在哪里:)?我试图在onCharacteristicRead中做到这一点,因为在这一个我从传感器的价值.. – user3742345 2014-10-17 09:58:49
好的请阅读有关处理程序...您可以更新textview从服务类使用处理程序....即太容易ñ好.. – 2014-10-17 10:02:52