如何检查后台服务(在Android上)是否正在运行?
我想要一个能够切换服务状态的Android活动 - 它可以让我打开它,如果它打开则关闭.
我正在使用本机android应用程序,并且在我的Crashlytics中获取以下报告,但我无法确定确切的原因。
我有两个活动,SplashActivity
并且MapActivity
在我的应用程序中。发生了很多事情,MapActivity
这会消耗一些内存。
LocationManager
用于从服务器获取附近的位置。Retrofit
)AsyncTask
)崩溃报告:
java.lang.RuntimeException: android.os.DeadSystemException
at android.app.ActivityThread.handleSleeping(ActivityThread.java:4403)
at android.app.ActivityThread.-wrap23(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: android.os.DeadSystemException
Run Code Online (Sandbox Code Playgroud)
受影响的设备:
我已经读过的内容:
不幸的是,这些链接并没有真正的帮助。我确定设备崩溃后不会重启。并且,其他应用程序在设备上也可以正常工作。我不拥有该设备,我只是在我的Crashlytics中获取了这些设备。
如果至少我可以在云中的某个设备上重现它,例如ex。使用GenyMotion并获得LogCat日志,将会有很大的帮助。
谢谢!
在过去的几周里,我遇到了我的崩溃记者:
Fatal Exception: java.lang.RuntimeException: Unable to start service com.####.MyService@ef705d8 with Intent { act=HIDE cmp=com.####/.MyService (has extras) }: java.lang.RuntimeException: android.os.DeadSystemException
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3344)
at android.app.ActivityThread.-wrap21(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1583)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Run Code Online (Sandbox Code Playgroud)
此崩溃存在于:
所有三星设备7.0
7.1.2上的所有Nexus设备
注意:
这不是因为最近我们的应用程序更新,只是这些手机上的操作系统更新.
这是一次非常频繁的崩溃(到目前为止我们最大的崩溃).
我们的用户不会报告崩溃事件(这种崩溃实际上对用户是否可见?)
我们无法在我们这边重现它
正如您可以看到堆栈跟踪,受影响的代码仅限系统.我不能在我这边做,试图抓住并处理这个问题.
我检查了线程Android DeadSystemException,但这对我没什么帮助.
我知道的DeadSystemException
是:
核心Android系统已经死亡并且正在重启运行时.所有正在运行的应用程序都会被迅速杀死
除了说"那个系统,我们什么都做不了"之外,我们能做些什么吗?