考试周系列,想到哪里写哪里

作者: 布谷鸟也会编程 | 来源:发表于2018-07-06 11:22 被阅读4次

这是一篇比较基础的文章,其实就是我的复习啦....发现很多东西会忘记,那还不如写出来,好记性不如烂笔头嘛~以后争取多写一些文章,哪怕没人看也要写...这一片说一说关于ANR以及怎么避免ANR的问题

1.什么是ANR?

一般呢,安卓中的主线程(也就是我们常说的UI线程),是不能进行耗时操作的,不然会大概率出现ANR的错误滴~那么什么是ANR呢?全名application not responding,也就是“应用无响应”。当操作在一段时间内系统无法处理时,系统层面就会弹出ANR对话框。
通常呢,有这几种情况会出现ANR:
5S内没有响应用户的输入行为,像是触摸点击屏幕啊,键盘输入呀~
广播接收者(BroadcastReceiver)在10S内没有结束操作,这些都是因为在主线程进行了耗时操作。

2.哪些地方是在主线程中操作的呢?

那么目前我们在开发过程中,都是将耗时操作放入子线程中进行,然后再由子线程通知主线程进行UI上的更新.因为子线程不能对UI进行操作滴...
首先我们需要知道,哪些地方时在主线程中进行的呢?来,客观这边儿请~

1.Activity的所有生命周期方法
2.默认的Service
3.BroadcastReceiver的onReceiver回调
4.AsyncTask的回调除了doInBackground,其他的执行在主线程。
5.View的post(Runable)
6.没有使用子线程的loop的Handler的handMessage、post(Runnable)是执行在主线程的。

以上的这六种场景都是在主线程中的,或许还有我不知道的场景我没有写出来..欢迎大家补充...所以在以上这几种场景中我们不能进行耗时操作,不然可能会引起ANR 的.

3.哪些地方进行耗时操作?

耗时操作:"55555,这也不能去那也不能去,那总得给我们一个家吧!!"
谷歌爸爸:"奥利给,你们可以去这些地方哦~"

1.直接继承Thread或者实现Runable接口
2.使用AsyncTask
3.使用IntentService

4.怎么进行线程间的通信?

1.使用handler进行通信
2.发广播

其实这篇就是我的复习系列的文章,你们可能都知道这些知识,但是我想总结一下写出来,印象会深点.另外我写的不一定都对,我也借鉴很多网上资料以及大神博客,我做的只是总结而已.欢迎大家补充~

相关文章

  • 考试周系列,想到哪里写哪里

    这是一篇比较基础的文章,其实就是我的复习啦....发现很多东西会忘记,那还不如写出来,好记性不如烂笔头嘛~以后争取...

  • 想到哪里写哪里

    今天又带孩子到游乐场玩了。在来游乐场之前,从昨晚到今天上午,都很烦躁。 昨晚,吃饭问题上,我还是会和孩子发生对抗。...

  • 手账新手,想到哪里写哪里

  • 想到哪里是哪里

    今天就要结束了,嗯…还好赶了一些活,打扫卫生,面试,傍晚遛公园,还算安排满了吧?今天的心情起伏还是有的。也可...

  • 7,8周总结 一定要聚焦亲爱的

    第七、第八周属于过完年回到北京上班的这两周,先写一点散的吧,想到哪里写哪里,然后再简明扼要的把这两周所思所想的总结...

  • 紫砂小记

    1. 今天本来准备不设限,随便写,看到哪里写哪里,想到多少写多少,如果没有内容,那就不写。 不过,一早起来,我又想...

  • 【0809晨读感悟】我没有一本正经的胡写

    #明确写作目标# 啥⊙∀⊙?目标? 没有目标啊,想到哪里就写到哪里好了呀,哪里来的目标?(活该你写的没人看,啊呸。...

  • 想到哪里&&写到哪里

    2018-8-24 23:18

  • 想到哪里写到哪里

    想到要做的事情,似乎沉浸不下心来写东西。重庆这两天超级热,牛仔裤长T恤标配的我被热得不行。 决定重...

  • 想到哪里写到哪里

    好几天都没有写日记,还是不能克服自己的懒惰。如果晚上没有重要的事情,尽量不出门、不应酬;读书、写字要有恒心,有...

网友评论

    本文标题:考试周系列,想到哪里写哪里

    本文链接:https://www.haomeiwen.com/subject/ltjzrftx.html