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。