簡體   English   中英

如何接收服務發送的 Intent

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM