我正在尝试在设备上安装的其他应用中启动服务。使用startService
时出现NullPointerException public void notConnected(){
Log.i(TAG,"no connection... reconnecting.");
Intent reset = new Intent("com.famoco.intent.action.TOGGLE_DATA");
Log.i(TAG,"calling " + reset.getAction());
if(reset.getAction().equals("com.famoco.intent.action.TOGGLE_DATA"))
{
startService(reset);
}
else
{
Log.i(TAG,"couldn't start service");
}
}
这是错误日志
E/AndroidRuntime: FATAL EXCEPTION: IntentService[MyAppCommService]
Process: com.myapppackage.MyApp, PID: 8583
java.lang.NullPointerException
at android.content.ContextWrapper.startService(ContextWrapper.java:494)
at com.myapppackage.MyApplocation.activity.MyAppActivity.notConnected(MyAppActivity.java:591)
at com.myapppackage.MyApplocation.api.MyAppApi.submitClock(MyAppApi.java:228)
at com.myapppackage.MyApplocation.service.MyAppCommService.submitTags(MyAppCommService.java:52)
at com.myapppackage.MyApplocation.service.MyAppCommService.onHandleIntent(MyAppCommService.java:98)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:61)
结果我的上下文返回null,我通过在onCreate中获取上下文并调用myContext.startservice来修复它。
答案 0 :(得分:0)
您正在开始新的Intent。看看那个谷歌的例子,看起来你用错误的方法来启动它。
- you use:
startService(reset);
- try this one:
startActivity(intent);
但这会启动一项活动。而你想要一个服务。除非您是其他应用的开发者,否则我认为您无法做到。一般来说,Android应用程序无法访问彼此的代码和资源。
答案 1 :(得分:0)
通过返回onCreate()
中的上下文然后调用context.startService()