java - Android Activity生命周期: when to save the Logcat into a file?

标签 java android android-activity android-lifecycle android-logcat

我的问题有点类似于this one ,但我有更具体的需求。我们开始吧:

在我的 Android 应用程序中,我想添加将 Logcat 保存到日志文件中的功能。因此,当用户报告我的应用程序出现问题时,我可以要求提供日志文件。将 Logcat 保存到文件中非常简单,如 here 中所述。 。现在的问题是:什么时候保存?

我当前的计划是在应用程序的 onCreate 中调用 logcat -c ,并在 onStop 中保存 Logcat。通过预先调用 logcat -c,我删除了与我的应用程序无关的信息。

但是,我发现我的计划有两个缺陷:

  • 如果用户安装了两个不同的应用程序,则第二个应用程序有可能在第一个应用程序完成之前启动。因为第一个应用程序的onStop没有被调用,所以Logcat还没有保存。第二个应用程序的 onCreate 中的 logcat -c 将清除第一个应用程序到目前为止的所有日志记录信息。

  • 即使只有一个应用程序正在运行,如果它崩溃了,它的 onStop 也不会被调用。或者是吗?我检查了 Activity 的生命周期,但无法确定在崩溃时是否调用 onStop。假设它没有被调用,那么这就超出了我的目的。我需要 Logcat 来了解我的应用程序崩溃的原因,但如果崩溃,则不会保存 Logcat。

有什么想法和/或建议吗?提前致谢!

最佳答案

不建议在发布版本上启用日志。当应用程序崩溃并且用户报告时,您可以从开发人员控制台获取崩溃堆栈跟踪。堆栈跟踪足以分析崩溃。它会清楚地指出类、方法和行号。

如果您在应用程序中启用了混淆器,则可以使用映射文件重新跟踪堆栈跟踪来分析崩溃。

关于java - Android Activity生命周期: when to save the Logcat into a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22721533/

相关文章:

java - 在 Android 上绘制 9 patch 虚线/虚线

android - 打开分享操作的不可见 Activity (ACTION_SEND)

android-layout - 按钮栏向上滑动时android删除动画

java - IntelliJ IDE for MyEclipse 中 `sout + Tab` 快捷方式的同义词

java - 冒泡排序不起作用

java - JPA 关系中列的自定义命名

android - 如何检查用户是否拒绝了 android.permission.FOREGROUND_SERVICE

Android:使用 Handler 更新 UI

android - 无法解析符号 'AppCompatActivity'

java - JEdi​​torPane图片异步下载问题