[英]Android Broadcast from Service To Activity
我正在嘗試從服務發送廣播到活動。 我可以驗證廣播是從服務中發送的,但是活動不會發送任何內容。
這是相關的服務代碼:
Intent i = new Intent(NEW_MESSAGE);
i.putExtra(FriendInfo.USERNAME, StringUtils.parseBareAddress(message.getFrom()));
i.putExtra(FriendInfo.MESSAGE, message.getBody());
i.putExtra("who", "1");
sendBroadcast(i);
並且活動類中的接收端:
public class newMessage extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(action.equalsIgnoreCase(IMService.NEW_MESSAGE)){
Bundle extra = intent.getExtras();
String username = extra.getString(FriendInfo.USERNAME);
String message = extra.getString(FriendInfo.MESSAGE);
String who = extra.getString("who");
}
}
}
BroadcastReceiver在Activity中定義。 我在Activity的onCreate方法中注冊接收器,而不是在Manifest文件中。
我很難過為什么它不會記錄。 任何東西。
任何見解?
編輯
注冊如下:
registerReceiver(messageReceiver, new IntentFilter(IMService.NEW_MESSAGE));
其中“messageReceiver”定義為
private newMessage messageReceiver = new newMessage();
IMService.NEW_MESSAGE只是一個string =“NewMessage”
我不確定它是否特定於設置,或者它是否一般是修復,但是將register/unregister
移動到onResume/onPause
_respectively_
並且沒有在onCreate
注冊解決了我的問題。
試試這兩件事:
內部類廣播接收器將無法處理廣播(意味着它無法定位該類)。 所以把它作為一個單獨的類
絕對會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.