gpt4 book ai didi

android - SendBroadcast Intent 有 Null Extras

转载 作者:行者123 更新时间:2023-11-29 16:01:46 24 4
gpt4 key购买 nike

我正在尝试使用 BroadcastReceiver 从 IntentService 向 Activity 发送消息。这是我在 IntentService 中的代码:

/**
* Received a message from the Google GCM service.
*/
@Override
protected void onMessage(Context context, Intent intent) {

Log.e(TAG, "Got a new message from GCM");

// create the intent
Intent broadcastIntent = new Intent(BROADCAST_NOTIFICATION);
intent.putExtra("name", "Josh");
intent.putExtra("broadcasting", true);
sendBroadcast(broadcastIntent);
}

在 Activity 类中,我注册了一个接收器来监听这些消息:

private class IncomingTransmissionReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

// if we are looking at a broadcast notification
if (intent.getAction().equals(GCMIntentService.BROADCAST_NOTIFICATION)) {

// are we broadcasting?
boolean broadcasting = intent.getBooleanExtra("broadcasting", false);

// get the name of the person who is broadcasting
String name = intent.getStringExtra("name");

Log.e(TAG, "Got a message, broadcasting= "+ broadcasting + " name= " + name);
}
}
}

当我发送广播时,这是日志打印的内容:

收到消息,broadcasting= null name= null。

甚至 intent.getExtras().getString("name") 和 intent.getExtras().getBoolean("broadcasting") 也返回 null(intent.getExtras() 也返回 null)。

我做错了什么?为什么我的 intent extras 在我明显设置它们时为空?

最佳答案

你必须做的:

    // create the intent
Intent broadcastIntent = new Intent(BROADCAST_NOTIFICATION);
broadcastIntent.putExtra("name", "Josh");
broadcastIntent.putExtra("broadcasting", true);
sendBroadcast(broadcastIntent);

关于android - SendBroadcast Intent 有 Null Extras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23957886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com