在android中检测应用程序崩溃
Posted
技术标签:
【中文标题】在android中检测应用程序崩溃【英文标题】:Detect app crash in android 【发布时间】:2015-12-17 05:34:50 【问题描述】:我正在构建一个有时会崩溃的应用程序,我想知道它在我下次打开它时崩溃了,所以我可以向用户建议一些崩溃后的选项。 如何检测崩溃? 另外我希望能够在用户崩溃之前保存用户的工作,我的意思是实时检测崩溃,我可以不知道它在哪里崩溃吗?
【问题讨论】:
【参考方案1】:您需要知道它在哪里崩溃,以便将try
/catch
块设置在正确的位置,呃,catch
崩溃并保存数据或您想到的任何内容。
如果您想更详细地考虑,这称为“优雅”终止。
不幸的是,Java 析构函数/finalize 方法和诸如 onDestroy
之类的生命周期方法都没有 try
/catch
块那么强大,所以恐怕这是您唯一的选择,我们中有多少人处理异常预防。没有人会故意提供崩溃的用户体验,更不用说丢失数据了。
【讨论】:
【参考方案2】:参加ACRA library。您可以对其进行配置,以便在发生崩溃时进行控制,甚至通过电子邮件发送崩溃日志
【讨论】:
【参考方案3】:您可以使用try/catch
blocks,然后在您的catch
中发送Exception
的详细信息。
【讨论】:
是的...我知道那个方法,但我不想尝试/捕获每个 if【参考方案4】:有实现 UncaughtExceptionHandler as mentioned in these answers 并在某个文件中写入崩溃报告或以其他方式使用它。
【讨论】:
【参考方案5】:ACRA 已被提及。
但是对于付费版本,我发现BugSnag 非常擅长这一点。 或者,如果您想加倍努力,请尝试AppSee。
AppSee 甚至有关于崩溃如何发生的视频录制会话。它来自于点击第二个列表上的那个按钮、菜单按钮,甚至当用户在你的浏览器中向左滑动时。
【讨论】:
以上是关于在android中检测应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Android C#:使用 xml 资源文件夹和清单来定义用于检测连接的 USB 设备崩溃应用程序的意图过滤器
检测到并上传了Firebase / Crashlytics事件,但不可见
android updateLocaleListFromAppContext NullPointerException 中的问题