2016-12-15 133 views
0

我有一个错误,我无法在命令或模拟器​​上重现,但似乎发生在物理设备上长时间离开应用程序后。Android BUG很长时间后

所有片段都会继续响应,但消息似乎不会从一个片段传递到另一个片段。

我最好的猜测是,某种垃圾收集可能会破坏链接。非常模糊的问题,但我绝望:

  • 什么可能导致这样的一个错误发生“很长时间后”(即小时)?如果我怀疑应用程序没有成功“恢复”,我应该在我写的代码中寻找什么?

  • 另外,adb logcat当物理设备通过USB连接时调试应该显示任何错误消息,我打印log.e(),是否正确?


对于未来的Google员工和其他新手程序员 - 今天我才知道,保存引用您创建的片段。或者,不要创建片段局部变量。我不需要对片段的引用,只有包含的视图。结果,片段被垃圾收集,并且在恢复时重新创建了一个新片段,从而打破了通信链接。

+0

嗯,这是一个含糊不清的问题的确!请给我们一些关于您的应用程序的更多信息!是否有任何后台进程在运行,服务,网络通信等等。只要给我们一些背景! –

回答

1

听起来像活动(/片段)不再保存在内存中 - Android框架可能随时在后台或后台堆栈中摧毁您的活动,并且您应该编写活动,以便在发生这种情况时能正确行为。为了击败这个覆盖onSaveInstanceState方法。

可以导致它发生,尝试通过开发人员选项重现它 - >不保留活动

+0

aaaa不错,我会给你一个镜头。谢谢! – q335r49

+0

是的 - 该选项是def重现它。谢谢! – q335r49

+0

不客气!祝你好运! – AsfK

相关问题