网站首页 程序人生 资源汇 学建站 源码 织梦模板 特效代码 技术手册 IT头条 电商 创业 运营 站长

特色栏目 视频下载 织梦模板 教程书籍 职业生涯 正能量 美图 标签索引

crash的实践总结收藏挑错

2018-12-04 16:15 采编:程序人生 阅读 投稿赚币
信任编译器 大部分Crash应该都是有空指针反常导致的 关于大部分的简略的空指针反常,请信任编译器。Android studio中,关于大部分或许呈现反常的状况,都会有相应的正告。 请尽量处理
信任编译器
大部分Crash应该都是有空指针反常导致的
关于大部分的简略的空指针反常,请信任编译器。Android studio中,关于大部分或许呈现反常的状况,都会有相应的正告。
请尽量处理编译器的正告
大部分项目,应该eclipse中开发,能够转换为android studio项目,或者将代码复制到android中。
android studio的正告,过错提示比eclipse好的多。
异步使命的回调反常
为了防止呈现ANR,apk大量运用了异步使命,大部分为AysncTask,handle在onPostExecute中,假如当时的Activity现已finish或者不存在时,就会呈现crash。这种状况非常常见。
处理方案:
假如在onPostExecute存在刷新页面的动作,请先判别当时的Activity是否存在。

在onPostExecute中,最常见的操作应该是Toast和closeProcess。

关于这两者,能够在BaseFragment和BaseActivity提供办法。该办法要先判别Activity是否存在。

要害办法1:

public boolean isActivityFinish() {
 
return mActivity == null || mActivity.isFinishing();
 
}
要害办法2:

 public void closeProcess() {
        if (isActivityFinish()) {
            return;
        }
 
        if (mProgressDialog != null) {
            mProgressDialog.dismiss();
            mProgressDialog = null;
        }
    }
要害办法3:

 public void showToast(int rId) {
        if (isActivityFinish()) {
            return;
        }
        Toast.makeText(this, rId, Toast.LENGTH_SHORT).show();
    }
初始化放在异步线程里
有些状况下,初始化进程比较久,为了防止anr,咱们需要把初始化进程放在异步线程里。这就呈现了相应问题:

关于变量,初始化后才能赋值。
假如立即运用,初始化进程未完毕,就或许呈现crash反常
标准办法:

假如能够运用默认值的,请在声明的同时设置默认值。
运用同步锁。假如变量未初始化完结,等待一段时间(自定),直至初始化完结。
参考源码:HandleThread类。

Mvp中的crash
Mvp完成了代码和逻辑的别离,可是也会引进内存泄露问题。

为了处理内存泄露,就需要及时置空view和presenter目标,这样就很或许呈现crash。这一现象大量存在,能够批量处理。

标准办法:
 在基类接口中声明,isViewActive办法,要求所有的presenter完成该办法,能够有效减少这类现象。

版别兼容和权限
作为一个不断迭代演进的系统,版别兼容无法防止。

处理方案:
检查官方的改变记录和阐明,提早做好规避
提早运用新版别编译。检查是否有反常。
权限反常:
作为rom的运用,很少有个这个问题。可是在demo常常遇到。灵敏权限要运用动态声明,而且做出处理。

装备过错和其他
这是一个初级的常见过错:

运用了一个Activity,可是却没有在装备文件中声明。

程序人生if98.com,专注IT人成长、所需、职场,欢迎参与撰稿、分享资源!

扫一扫关注程序人生公众号

免责声明:本文内容由[程序人生]用户自行发布或编辑转载,本站不拥有所有权、不承担相关法律责任。 如发现有涉嫌抄袭的内容,可邮件 web@if98.com 举报,并提供证据,一经查实,本站将立刻删除涉嫌侵权内容。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
-->

站长推荐文章

  • 我的编程之路:从好玩到

    我的编程之路:从好玩到玩好

    先解释下标题吧:好玩指的是爱好、觉得有趣,玩好指的是把事情搞定、让事物变得更好。 第一次接触电脑 我最早接触电脑是小学四年级的时候,...

    07-17发布356人阅读学习心得

  • 给未来程序员的15个顶级职

    给未来程序员的15个顶级职业建议

    好吧,我觉得10条不够,应该有15条职业建议。不过首先,我想解释一下出色的职业生涯是什么样的。 他们的进步曲线并不是每个月都会上升一点的...

    07-17发布341人阅读学习心得

  • 程序员你为什么迷茫?

    程序员你为什么迷茫?

    你曾经充满热情,是一位开源软件倡导者,你崇尚全栈工程师才有未来的理念,你渴望改变世界。但是现在你每天都处于焦虑之中,你每天不断地学...

    07-17发布192人阅读学习心得

  • IT行业的中年危机,老程序

    IT行业的中年危机,老程序员的价值在哪里!

    前几天和一个程序员朋友聊天,他说年岁大了,考虑转,他33岁,多么风华正茂的年岁,他的慨叹让我很意外,在公司是内行,能够处理那些所谓的...

    11-08发布174人阅读学习心得 IT行业,老程序员,职场

  • 如何成为一名成功的程序

    如何成为一名成功的程序员

    编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功...

    10-31发布157人阅读学习心得

  • 如何伪装成一个年薪20万刀

    如何伪装成一个年薪20万刀以上的码农?

    年轻的程序猿朋友们,从东岸、中部、南加迁徙到硅谷的你,是否希望远处的美女向你投来崇拜的目光?希望身边的朋友觉得你很酷很牛逼?今天我...

    09-28发布145人阅读学习心得

  • 程序员的工作总结

    程序员的工作总结

    在新的公司工作半年了时间飞逝,作为一名工程师,也要时刻对自己反省,这样才能够有所提升,在工作中我总结了一下几点,这个可能也是大家常...

    06-13发布104人阅读学习心得

  • 做博士还是做一个专业的

    做博士还是做一个专业的程序员?

    当我从大学毕业获得计算机科学学位的时候,我就想继续学习并获得博士学位。但是,我又想作为一个软件开发者去参与工作,所以我在这一行中工...

    07-17发布103人阅读学习心得

阅读排行

论坛信息推荐 更多 >>

关于我们

微信公众号

扫码关注官方微信

返回顶部