我正在做一个使用telnet通信并每秒接收数据的Android应用程序(ActivityTelnet)。我想在另一个活动(Activity1)中解决其中一些数据。但是当我在Activity1中时,我不知道如何接收和更新数据,我甚至不知道是否可能。有谁能告诉我?
答案 0 :(得分:0)
您需要某种总线来提供数据。
其中一个是LocalBroadcastManager
。您可以从ActivityTelnet中的系统获取它的实例,并使用它与另一个Activity1中的BroadcastReceiver
进行通信。
广播内容:
Intent intent = new Intent("someFilter");
intent.putExtra("itemName", someParcelable);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
您可以传递原始类型和对象,只要它们实现Parcelable
接口即可。查看Parcelable以获取更多相关信息。
接收广播:
// declare your receiver
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
};
// add this to your #onCreate(Bundle) in Activity1
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, new IntentFilter("someFilter"));
在创建Intent和注册Receiver时,请注意您正在使用的IntentFilter
。他们必须匹配。
您也可以使用其他公共汽车,例如Square的Otto。