服务在意图中接收 Null 值

Posted

技术标签:

【中文标题】服务在意图中接收 Null 值【英文标题】:service receiving Null values in an intent 【发布时间】:2020-05-05 02:19:02 【问题描述】:

我正在从 BroadcastReceiver 启动一个服务并将一些值从 BroadcastReceiver 发送到该服务。当我试图在服务中检索这些值时,它给了我空值。

请让我知道我做错了什么。提前致谢!

从广播开始服务-

    Intent serviceIntent = new Intent(context, LatestCallService.class);
    intent.putExtra("from","Internet");
    context.startService(serviceIntent);

在服务中检索价值但给出 Null-

    public int onStartCommand(Intent intent, int flags, int startId) 
    super.onStart(intent, startId);
    String a= intent.getStringExtra("from");
    Toast.makeText(this, " Name : "+a, Toast.LENGTH_SHORT).show();

【问题讨论】:

你的代码看起来不错,你添加了breakpoint 并检查了吗? 【参考方案1】:
 @Override
    public void onReceive(Context context, Intent intent) 
        Toast.makeText(context, "Event", Toast.LENGTH_SHORT).show();
        intent = new Intent(context, MyService.class);
        intent.putExtra("check","done");
        context.startService(intent);
    

使用 onReceive 方法中的 Intent

【讨论】:

非常感谢。它奏效了,您的解决方案为我节省了大量时间,但您能告诉我为什么我们使用从广播接收器获得的相同意图吗?【参考方案2】:

在获取意图时,将代码放入 onBind() 方法 服务: @覆盖 公共IBinder onBind(意图意图) mTourName = intent.getStringExtra("tour_name"); 返回 mBinder;

试试这个。

【讨论】:

我试过了,这次 Toast 也不来了。

以上是关于服务在意图中接收 Null 值的主要内容,如果未能解决你的问题,请参考以下文章

Google Apps 脚本中的成功处理程序从服务器函数接收 null

Android:意图通过通知传递给活动......我在意图中没有得到正确的额外内容

通过 jQuery GET 调用传递参数在服务器端接收 null

附加到表单数据的 JavaScript 对象在服务器上始终作为 null 接收

Controller从angularjs服务帖子接收Null参数

请教:C# WebService调用Java WebService(返回Json类型数据) ,为啥接收为null