Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 空服务仍然会导致ANR_Android_Android Service_Android Anr Dialog - Fatal编程技术网

Android 空服务仍然会导致ANR

Android 空服务仍然会导致ANR,android,android-service,android-anr-dialog,Android,Android Service,Android Anr Dialog,我在我的应用程序上得到了一个ANR,我很难找到原因 启动我的应用程序,然后什么也不做,或者按下睡眠按钮,就会重现错误。睡眠20秒后,应用程序将冻结。重新唤醒手机时会显示ANR消息 我把范围缩小到: Intent startGCM = new Intent(getBaseContext(), GCMService.class); startGCM.setAction("CONNECT"); startService(startGCM); 这些行是我的主要活动startuponCreate例程的一

我在我的应用程序上得到了一个ANR,我很难找到原因

启动我的应用程序,然后什么也不做,或者按下睡眠按钮,就会重现错误。睡眠20秒后,应用程序将冻结。重新唤醒手机时会显示ANR消息

我把范围缩小到:

Intent startGCM = new Intent(getBaseContext(), GCMService.class);
startGCM.setAction("CONNECT");
startService(startGCM);
这些行是我的主要活动startuponCreate例程的一部分。如果我把它们注释掉,错误就消失了,手机可以根据需要进行睡眠/唤醒,应用程序仍然可以工作

您将认识到这是一个非常简单的服务呼叫。因此,我查看了目标服务,并删除了onStartCommand函数的全部代码。除了return语句之外,根本没有代码在运行。但这并不能阻止错误的发生

我在手机上找到traces.txt文件,但没有提到我的任何代码。这里是主线程转储的第一部分,可能也很熟悉:

"main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 obj=0x4127f508 self=0x40f469a0
  | sysTid=12711 nice=0 sched=0/0 cgrp=apps handle=1074286384
  | schedstat=( 1176280531 686300303 3448 ) utm=93 stm=24 core=0
  #00  pc 0000da70  /system/lib/libc.so (epoll_wait+12)
  #01  pc 00014899  /system/lib/libutils.so (android::Looper::pollInner(int)+96)
  #02  pc 00014b01  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*,         void**)+104)
  #03  pc 000634f3  /system/lib/libandroid_runtime.so     (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
  #04  pc 0001deb0  /system/lib/libdvm.so (dvmPlatformInvoke+112)
  #05  pc 0004d103  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
  #06  pc 000272e0  /system/lib/libdvm.so
  #07  pc 0002bbe8  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)

有什么线索吗?对我来说,等待什么都没有意义。是否有另一个文件说明它正在等待什么?

是否从onStartCommand返回START\u STICKY?否,我只是输入了一个整数。我来查一下这个开始粘的东西。好的。如果希望服务一直运行到显式停止,则需要返回START\u STICKY.It works。谢谢也许我应该更好地阅读文档。我以为会有一种叫服务的东西挂在那里。好的。是的,再看看服务类,它提供了所需的信息