Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法在服务onStart()中检索意图附加项_Android_Android Intent - Fatal编程技术网

Android 无法在服务onStart()中检索意图附加项

Android 无法在服务onStart()中检索意图附加项,android,android-intent,Android,Android Intent,我正在尝试从另一个服务启动一个带有某些附加功能的服务。但是,我无法在已启动的服务中检索这些额外内容,。getIntExtra返回NullPointerException。 这就是我启动服务的方式: Intent serviceIntent = new Intent(context, RefreshService.class); serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); PendingIn

我正在尝试从另一个服务启动一个带有某些附加功能的服务。但是,我无法在已启动的服务中检索这些额外内容,
。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

检索这些,谢谢你的回答,但是在我的情况下,没有任何额外的信息(似乎)传递给已启动的服务,这不是哪个是最新的问题。虽然我尝试添加标志\u UPDATE\u CURRENT,但没有帮助:-/事实上,等等,这是两个相互冲突的语句-首先,您说getIntExtra抛出一个NPE(表示意图为null),然后您说它返回-1(表示额外值不存在,或者您实际传入了-1-您是否验证传入了正确的值?)。如果您查看第二个代码块的第四行:getIntExtra解析为“-1”,因为这已被指定为默认值(如果意向额外值不存在)。如果我在不指定默认值的情况下查询额外值,我将得到一个NPE。