我有以下代码
@Override
public int onStartCommand(Intent intent,int flags,int startId) {
if(intent != null) {
Log.i("INTENT",intent.getAction().toString());
}
return START_STICKY;
}
但它总是在线返回NullPointerException:
Log.i("INTENT",intent.getAction().toString());
为什么?如果“intent”变量不为null,我正在检查上面.如果是这种情况,请执行以下代码.但我仍然有nullpointerexception.
服务从以下活动开始:
startService(new Intent(this,MainService.class));
我究竟做错了什么?
最佳答案
您收到NullPointerException,因为intent.getAction()似乎返回null.
你应该把支票延伸到这个:
if(intent != null && intent.getAction() != null) {
如果要为意图添加动作,则需要调用setAction():
Intent i = new Intent(this,MainService.class);
i.setAction("foo");
startService(i);