我有以下代码
@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”变量是否不为空。如果是这种情况,请执行以下代码。但我仍然遇到 nullpointerexception。
服务是从这样的 Activity 开始的:
startService(new Intent(this, MainService.class));
我做错了什么?
最佳答案
你得到一个 NullPointerException
因为 intent.getAction()
似乎返回 null
。
您应该将支票扩展到:
if(intent != null && intent.getAction() != null) {
如果你想为你的 Intent 添加一个 Action ,你需要调用 setAction() :
Intent i = new Intent(this, MainService.class);
i.setAction("foo");
startService(i);
关于android - Intent 始终为 null onStartCommand,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16043173/