Android 如何找到停止活动的原因
我有一个单独的活动,其中有几个片段被随机停止,我试图找出原因。与此()类似的问题,但与答案无关 该活动在Android Wear上运行,并收集加速计数据。只有当我在移动设备时与设备进行交互(如轻敲屏幕)时,它才会停止。我试过:Android 如何找到停止活动的原因,android,wear-os,Android,Wear Os,我有一个单独的活动,其中有几个片段被随机停止,我试图找出原因。与此()类似的问题,但与答案无关 该活动在Android Wear上运行,并收集加速计数据。只有当我在移动设备时与设备进行交互(如轻敲屏幕)时,它才会停止。我试过: 如果晃动设备导致配置更改,则禁用方向更改 在磨损活动上禁用swipeToDismiss,以防水龙头被误解为快速滑动关闭 使用断点重写onLowMemory(),以检查这是否是资源问题 如果无意调用finish() 该活动从具有的服务启动 Intent startI
swipeToDismiss
,以防水龙头被误解为快速滑动关闭onLowMemory()
,以检查这是否是资源问题finish()
Intent startIntent = new Intent( this, WearActivity.class );
startIntent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity( startIntent );
活动设置为android:launchMode=“singleTask”,但只有一个启动请求
我已经没有主意了。有没有办法确定谁在发送停止消息?下面是完整的堆栈跟踪,通过在ActivityThread.handleMessage()
中接收STOP\u activity\u HIDE
系统消息来停止活动:
编辑:作为对某些注释的响应,上面的堆栈跟踪不是由抛出的异常生成的。这正是我点击断点查看导致应用程序停止的调用历史的地方。该应用程序完全退出,我试图弄清楚它为什么要退出 更新: 我终于找到了罪犯。通常,在我的应用程序关闭之前,我会在日志输出中提前几分钟获得以下信息:
I/ActivityManager﹕ START u0{act=android.intent.action.MAIN cat=[android.intent.category.HOME]flg=0x10000000 cmp=com.google.android.wearable.app/com.google.android.clockwork.HOME.HOME活动(有额外功能)}
移动手表似乎会增加计步器的步数,从而在手表的主屏幕上显示新的信息卡。这张卡打断了我的全屏活动并关闭了它。有人知道防止这种情况发生的方法吗?这感觉像是一个磨损bug,我不确定其他应用程序是否能够中断这样运行的前台应用程序
我已经找到了我的应用程序关闭的原因,但只是因为有一点幸运的信息发送到了日志中。我仍然在寻找我最初问题的答案,以确定Android系统停止应用程序的原因。也许这是不可能的?对于我最初的问题,我没有答案,但我有一个解决办法来解决它引起的症状。我没有将我的应用程序作为全屏活动启动,而是在上下文流中创建一个通知,其中包含一个全屏操作。通知是持久的,因此即使其他卡进入流,它们也不会导致我的任务退出 Iv'e在上为该问题提交了一个bug
最初的问题仍然没有解决,但我怀疑它没有答案…通过查看logcat,我认为您的onStop方法有问题…不,我的onStop只是调用super.onStop()。它只是用来放置一个断点并捕获活动停止的点,以获得堆栈跟踪。任何地方都不会抛出异常。是否会抛出任何异常?我在你的日志中错过了它…发布完整的日志,这只是它的一部分。myRandomApp.WearActivity.onStop(WearActivity.java:76)上应该有一个例外什么是行
?收到的短信也会给您带来问题吗?或者它只是计步器通知弹出?它发生在所有新卡上,而不仅仅是计步器。通过手持设备上的Android Wear应用程序发送演示卡,轻松复制。值得注意的是,为了启动与我的应用程序关联的活动并使任务保持活动状态,我使用setDisplayIntent()
的自定义布局集创建了通知。
at myRandomApp.WearActivity.onStop(WearActivity.java:76)
at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1212)
at android.app.Activity.performStop(Activity.java:5387)
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3196)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3245)
at android.app.ActivityThread.access$1100(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5026)
at java.lang.reflect.Method.invokeNative(Method.java:-1)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(NativeStart.java:-1)