zoukankan      html  css  js  c++  java
  • 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!




  • 相关阅读:
    codeforces 图论题目集(持续更新)
    整数快速幂
    Codeforces Codeforces Global Round 5 C2
    POJ 1061
    扩展欧几里德算法(数论)
    Codeforces Round #592 (Div. 2) 1224D
    Codeforces Round #582 (Div. 3) G. Path Queries
    2019 kickstart A轮 B 题
    P3379 【模板】最近公共祖先(LCA)
    bzoj 2002 分块
  • 原文地址:https://www.cnblogs.com/yejiurui/p/2760386.html
Copyright © 2011-2022 走看看