android app无感知自动升级,Android中实现用户无感知处理后台崩溃

在Android应用中,为了提供良好的用户体验,可以实现无感知的后台崩溃处理。通过检测Activity的数量来判断应用是否在后台,当应用在后台崩溃时,不显示崩溃对话框,而是直接杀掉进程。在Application中注册ActivityLifecycleCallbacks监听Activity状态,并设置自定义的未捕获异常处理器,在后台崩溃时执行进程杀死操作,从而避免用户感知到应用异常。
摘要由CSDN通过智能技术生成

正所谓,要想没有bug,就一行代码也不写。App到了用户的手里,肯定是崩溃越少越好。Android中的崩溃处理和iOS不太一样,iOS崩溃通常是闪退,而安卓会出现如下的蹩脚的对话框

0a02f8b8ee55

image.png

当你的用户看到类似这样的崩溃对话框时,心中得到“这届程序员不行啊”的感慨也不足为奇。

在安卓中,我们应用会有所谓的前台和后台的概念,在本文这里这样定义,当前应用有Activity展示(即用户明显感知在当前应用),约定为前台,否则为后台。

如果在前台时,发生崩溃用户是明显能感知的,但倘若发生在后台,我们可以做一些简单的小操作,让用户感知不到崩溃的发生(即不弹出崩溃的对话框)。

原理其实蛮简单的。

检测是否为后台

如果是后台则杀掉该进程,否则执行默认的崩溃处理

检测是否为后台,这里我们以进程中Activity的数量作为判断标准

当activity onStart时activityCount自增

当Activity onStop时activityCount自减

当activityCount为0,我们则认为应用处于后台状态

具体实现如下

object ActivityLifecycleCallbackImp: Application.ActivityLifecycleCallbacks {

var activityCount: Int = 0

override fun onActiv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值