Android中如何处理后台崩溃-创新互联

本篇内容主要讲解“Android中如何处理后台崩溃”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中如何处理后台崩溃”吧!

成都创新互联专注于峨山县企业网站建设,响应式网站开发,商城网站制作。峨山县网站建设公司,为峨山县等地区提供建站服务。全流程专业公司,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

原理其实蛮简单的。

  • 检测是否为后台

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

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

  • 当activity onStart时activityCount自增

  • 当Activity onStop时activityCount自减

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

具体实现如下:

object ActivityLifecycleCallbackImp: Application.ActivityLifecycleCallbacks {    var activityCount: Int = 0    override fun onActivityPaused(activity: Activity?) {    }     override fun onActivityResumed(activity: Activity?) {    }     override fun onActivityStarted(activity: Activity?) {        activityCount ++    }     override fun onActivityDestroyed(activity: Activity?) {    }     override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) {    }     override fun onActivityStopped(activity: Activity?) {        activityCount--    }     override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {    } }

在Application中进行注册:

class MyApplication : Application() {    override fun onCreate() {        super.onCreate()        registerActivityLifecycleCallbacks(ActivityLifecycleCallbackImp)    } }

剩下的就是设置一个自定义的未捕获异常处理处理器:

val defaultHandler = Thread.getDefaultUncaughtExceptionHandler() Thread.setDefaultUncaughtExceptionHandler { thread, exception ->    exception.printStackTrace()    val isBackground = ActivityLifecycleCallbackImp.activityCount == 0    if (isBackground) {        Log.d("MyApplication", "isBackground just kill the process without annoying users")        android.os.Process.killProcess(android.os.Process.myPid())    } else {        defaultHandler.uncaughtException(thread, exception)    } }

到此,相信大家对“Android中如何处理后台崩溃”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


网站题目:Android中如何处理后台崩溃-创新互联
当前网址:http://bzwzjz.com/article/jsioc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 梓潼网站设计 H5网站制作 成都网站设计 攀枝花网站设计 成都网站制作 专业网站设计 网站设计 网站建设公司 宜宾网站设计 成都商城网站建设 温江网站设计 成都网站制作 成都网站设计 高端品牌网站建设 成都网站设计 重庆企业网站建设 移动手机网站制作 成都企业网站建设公司 营销网站建设 阿坝网站设计 教育网站设计方案 网站建设