broadreceiver从其他地方接收到消息,然后在将消息转发给指定的activity
在BroadcastReceiver中:
public class MsgReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "TimeReceiver+++");
Intent i = new Intent();
i.putExtra("MsgReceiver","hello ,i am MsgReceiver "));
//设置发送广播的类型,可以随便写一个
i.setAction("msgReciver");
context.sendBroadcast(outletInten);
}
}
在Activity中:
public class ActivityA extends Activity {
private ActivityAReceiver mActivityAReceiver =new ActivityAReceiver();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
IntentFilter filter = new IntentFilter();
// 设置接收广播的类型,这里要和Service里设置的类型匹配,还可以在AndroidManifest.xml文件中注册
filter.addAction("msgReciver");
// 注册广播接收器
this.registerReceiver(mActivityAReceiver , filter);
}
}
// 定义一个广播接收器
public class ActivityAReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// 接收到Service发送的广播信息,得到数据
Bundle bundle = intent.getExtras();
String msg = bundle.getString(ALARM_MESSAGE);
Toast.makeText(getApplicationContext(), msg, Toast.LENGHT_SHORT);
//现在你可以对activity操作了,更新UI等
}
}
}