广播接收器和MainActivity之间的Android通信(将数据发送到活动)

Non*_*ver 5 sdk android broadcast android-activity

我有这必须停止,直到接收到短信......一个简单的主要活动如何从启动方法MainActivity的范围内BroadcastReceiveronReceive()方法?

有信号和等待吗?我是否可以通过待处理的内容Intent,或者如何实现此通信?

Emm*_*uel 10

从BroadcastReceiver到Activity的通信很敏感; 如果活动已经消失怎么办?

如果我是你,我会在Activity中设置一个新的BroadcastReceiver,它会收到一条CLOSE消息:

private BroadcastReceiver closeReceiver;
// ...
closeReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context context, Intent intent) {

  //EDIT: receiving parameters
  String value = getIntent().getStringExtra("name"); 
  //... do something with value

  finish();
  }
};
registerReceiver(closeReceiver, new IntentFilter(CLOSE_ACTION));
Run Code Online (Sandbox Code Playgroud)

然后从SMS BroadcastReceiver您可以发出此操作:

Intent i = new Intent(CLOSE_ACTION);
i.putExtra("name", "value"); //EDIT: this passes a parameter to the receiver
context.sendBroadcast(i);
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助?