我有下一个问题:
我创建了一个自定义 BroadcastReceiver 并将其注册到主要活动 onCreate 处理程序中:
public class MainActivity extends ListActivity {
private static final LogReceiver logReceiver = new LogReceiver();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocalBroadcastManager.getInstance(this).registerReceiver(logReceiver, new IntentFilter(LogReceiver.ACTION_LOG));
}
...
}
广播接收器类:
public class LogReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("intent", "intent <-");
}
}
然后我使用下一个代码从本地服务发送多个意图:
Intent intent = new Intent(LogReceiver.ACTION_LOG).putExtra("log", logString);
localBroadcastManager.sendBroadcast(intent);
Log.i("intent", "intent ->");
日志对我来说看起来很奇怪:
- 意图->
- 意图<-
- 意图->
- 意图<-
- 意图<-
- 意图->
- 意图<-
- 意图<-
- 意图<-
- ...
第一次 LogReceiver 只收到一个 Intent,这是正确的,但每次它收到的 Intent 比发送的多。
我可以在我的项目中从 Intent 方法切换,但有趣的是为什么会发生这种情况?