当前位置: 代码迷 >> Android >> 无法在服务onStart()中检索Intent Extras
  详细解决方案

无法在服务onStart()中检索Intent Extras

热度:16   发布时间:2023-08-04 10:36:34.0

我正在尝试从具有某些附加功能的其他服务启动服务。 但是,我无法在启动的服务中检索这些额外内容, .getIntExtra返回NullPointerException。

这是我启动服务的方式:

Intent serviceIntent = new Intent(context, RefreshService.class);
serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);

PendingIntent contentIntent = PendingIntent.getService(this, 0, serviceIntent, 0);
updateViews.setOnClickPendingIntent(R.id.btnRefresh, contentIntent);


这就是我试图在启动的服务中接收额外费用的方式:

@Override    
public void onStart(Intent intent, int startId){
    super.onStart(intent, startId);
    mAppWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
}

在我的示例中, mAppWidgetId始终使用默认值-1。

我究竟做错了什么?


谢谢你的帮助,

缺口

我通过.setAction.setFlags而不是.putExtras传输我的自定义值来“解决”它,效果很好。 我可以使用.getAction.getFlags检索这些

听起来像这样可疑:

  相关解决方案