android开发系列日志(6)

一.下载 *
    1.多线程下载
        开启多个线程, 指定同一个URL, 指定同一个文件
        不同的线程请求URL时指定不同的Range, 不同的写成写入同一个文件时seek()到不同的位置
        每一个线程负责下载其中一部分
    2.断点续传
        在下载的过程中, 每下载一部分数据, 就把已完成的进度保存
        下次开始的时候从文件中读取上次已完成进度, 从这个进度后面继续

二.Handler *****
    1.什么是Handler
        Handler可以用来在线程之间进行通信, Android中的界面组件只能在创建界面的线程中修改, 如果主线程创建界面, 那么新线程就无法修改.
        某些时候我们一定要在新线程中修改主线程的界面, 这时就可以使用Handler通信.
    2.怎么使用
        sendMessdage
            在新线程中通过Handler的引用调用sendMessage()方法, 发送一个Message对象
            这时创建Handler的线程就会执行handleMessage()方法得到新线程发送的Message对象
        post
            在新线程中通过Handler的引用调用post()方法, 发送一个Runnable对象
            这时创建Handler的线程就会执行Runnable中的run()方法
           
三.ANR异常
    1.什么是ANR异常
        Application Not Response 应用程序无响应, 在用户进行一个操作, 而Android系统6秒内没有对其进行处理的时候, 程序就会出现ANR异常.
    2.为什么会出现ANR异常
        Android系统中处理用户操作的工作是在主线程中执行的, 如果我们的程序在主线程中进行一些耗时的操作, 导致用户的操作6秒不能处理, 就会出现异常.
    3.怎么解决
         将耗时的操作放在新线程中执行
         如果需要操作界面, 那么使用Handler进行处理

如果,这篇博客帮您解决了问题,不妨点击一下右下角的【推荐】。

如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。

因为,我的热情需要您的肯定和支持! 

感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends!




原文地址:https://www.cnblogs.com/yejiurui/p/2760386.html