当android服装正在充电时,服务会发生什么?

时间:2016-01-12 04:04:59

标签: java android android-service wear-os

我的moto 360上运行了Activity,此活动在按下Service后开始Button。服务运行得很好,但是......一旦我将手表放入充电器,我的应用程序崩溃了,给出了以下信息:

attempt to invoke virtual method 'service.getAcceleration()' on a null object reference.

事情是,活动和服务在"正常使用"上工作得很好。但是一旦我将我的moto 360放在充电垫上,活动可见,我得到一个" instacrash"有一条类似上面的消息。

PS:我的服务已启动并绑定,引用由service变量保存,我每隔N毫秒使用{{1}读取数据}}

编辑:以下完整堆栈。

Handler

错误行:

01-12 01:13:16.693: E/AndroidRuntime(19078): FATAL EXCEPTION: main
01-12 01:13:16.693: E/AndroidRuntime(19078): Process: net.mauker.home_ecare, PID: 19078
01-12 01:13:16.693: E/AndroidRuntime(19078): java.lang.NullPointerException: Attempt to invoke interface method 'double net.mauker.home_ecare.services.AccWatchdogInterface.getAcceleration()' on a null object reference
01-12 01:13:16.693: E/AndroidRuntime(19078):    at net.mauker.home_ecare.activity.MainActivity.updateData(MainActivity.java:102)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at net.mauker.home_ecare.activity.MainActivity.access$000(MainActivity.java:22)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at net.mauker.home_ecare.activity.MainActivity$1.run(MainActivity.java:39)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at android.os.Handler.handleCallback(Handler.java:739)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at android.os.Handler.dispatchMessage(Handler.java:95)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at android.os.Looper.loop(Looper.java:135)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at android.app.ActivityThread.main(ActivityThread.java:5254)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at java.lang.reflect.Method.invoke(Native Method)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at java.lang.reflect.Method.invoke(Method.java:372)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
01-12 01:13:16.693: E/AndroidRuntime(19078):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

我在这里获得double acc = service.getAcceleration(); 活页夹:

Service

我可以使这个问题更加通用。插上充电器后,Wear Activity生命周期会发生什么?

编辑: private AccWatchdogInterface service; //... @Override public void onServiceConnected(ComponentName name, IBinder service) { this.service = ((AccWatchdogBinder) service).getService(); mHandler.post(runnable); } 在我将磨损装入充电器的那一刻就被杀死了。仍然不知道为什么。如果我不这样做,它不会很快被杀死。

我检查了Service并且它停止了崩溃。但我的null不应该被杀死,我想知道为什么它会在充电器上发生(生命周期问题?)。

0 个答案:

没有答案