我試圖使用BroadcastReceiver接收來自服務的新消息。但廣播接收器總是接收廣播兩次... ... 接收器代碼:爲什麼BroadcastReceiver收到兩個相同的廣播
private class RecentBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Bundle messageBundle = intent.getExtras();
IChatCSMessage message = (IChatCSMessage) messageBundle.get("message");
String sender = message.getSender().getUserId();
addRecentBuddy(sender.trim());
recentBuddyAdapter.notifyDataSetChanged();
allMessages.get(sender).add(message);
Log.i("RECENT_RECEIVER", "RECEIVING MESSAGE:" + message.getMessage());
}
}
public void initReceiver() {
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction("com.ichat.message");
recentBroadcastReceiver = new RecentBroadcastReceiver();
registerReceiver(recentBroadcastReceiver, myIntentFilter);
}
廣播是:
Intent intent = new Intent("com.ichat.message");
intent.putExtra("message", message);
IChatClientService.this.sendBroadcast(intent);
誰能幫助我?
也許你的'initReceiver()'被調用兩次..? – fiddler
@fiddler否,只需要一次 – Lafido
也許你在清單文件中註冊它? – fiddler