[英]How to receive an Intent sent by a Service
我在將意圖從服務發送到活動時遇到了一些問題。 這是代碼:
Intent intent = new Intent(context,
MessagingActivity.NewMessageReceiver.class);
intent.setAction(XMPPService.NEW_MESSAGE);
intent.putExtra("MESSAGE", body);
intent.putExtra("FROM", from);
context.sendBroadcast(intent);
context 是一個服務接收器代碼(它是活動中的內部 class):
public class NewMessageReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(XMPPService.NEW_MESSAGE))
{
String message = intent.getStringExtra("MESSAGE");
String from = intent.getStringExtra("FROM");
// TODO: add screen switch
addMessage(true, from, message);
}
}
}
Android 清單條目:
<receiver
android:name=".MessagingActivity.NewMessageReceiver">
<intent-filter>
<action android:name="com.someapp.XMPPService.NEW_MESSAGE"/>
</intent-filter>
</receiver>
問題是雖然發送了 Intent,但沒有調用 onReceive() 方法。
謝謝,伊萬。
嘗試這個
Intent intent = new Intent(XMPPService.NEW_MESSAGE);
intent.putExtra("MESSAGE", body);
intent.putExtra("FROM", from);
sendBroadcast(intent);
在活動中
IntentFilter filter = new IntentFilter(XMPPService.NEW_MESSAGE);
BroadcastReceiver mReceiver = new MessageReceiver(getApplicationContext());
registerReceiver(mReceiver, filter);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.