问题描述
我正在尝试从具有某些附加功能的其他服务启动服务。
但是,我无法在启动的服务中检索这些额外内容, .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。
我究竟做错了什么?
谢谢你的帮助,
缺口
1楼
我通过.setAction
和.setFlags
而不是.putExtras
传输我的自定义值来“解决”它,效果很好。
我可以使用.getAction
和.getFlags
检索这些
2楼
听起来像这样可疑: