zoukankan      html  css  js  c++  java
  • Android学习笔记【04】【网络编程之一】

    阶段1  数据存储与界面展示

    阶段2  网络编程

    阶段3  四大组件

    阶段4  多媒体

    阶段5  新特性

    一、网页源码查看器

    抓包工具:HttpWatchPro

    安装后在浏览器中打开快捷键:shift+F2

     1 String path = et_path.getText().toString().trim();
     2 
     3 URL url = new URL(path);
     4 Log.d("data", path);
     5 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
     6 
     7 //设置请求类型
     8 conn.setRequestMethod("GET");//默认GET请求
     9 //设置超时时间
    10 conn.setConnectTimeout(5000);
    11 //获取返回状态码
    12 int code = conn.getResponseCode();
    13 if (code == 200) {
    14     //获取返回数据
    15     InputStream in = conn.getInputStream();
    16 
    17     String content = StreamTools.readStream(in);
    18     Log.d("data", content);
    19     tv_result.setText(content);
    20 }

    HttpURLConnection:用于发送和接收数据

    ScrollView只能有一个子节点

    二、消息机制的写法

    ANR=Application NOT Response

    如果主线程中进行耗时操作(如连接网络、复制大量数据)会异常

    耗时操作均放到子线程中

    4.0之后,谷歌强制要求不能在主线程连接网络(NetworkOnMainThreadException)

    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

    只有主线程才可以更新UI

    消息机制

    三、handler原理

    使用步骤:

    1、主线程定义一个Handler

    2、重写handleMessage方法

    1 private Handler handler = new Handler() {
    2         @Override
    3         public void handleMessage(Message msg) {
    4 
    5             tv_result.setText(msg.obj.toString());
    6         }
    7 };

    3、子线程发消息给主线程handleMessage执行处理

    1 Message msg = new Message();
    2 msg.obj = content;
    3 //发送消息后,handleMessage会执行
    4 handler.sendMessage(msg);

    handler作用:发消息和处理消息

    Looper作用:去消息队列中取消息

    四、图片查看器

     返回流转换成Bitmap:

    使用BitmapFactory类可以将各种类型转换成Bitmap对象

    五、runOnUiThread写法

    runOnUiThread(Runnable() action):action在主线程运行

    1 runOnUiThread(new Runnable() {
    2                             @Override
    3                             public void run() {
    4                                 iv.setImageBitmap(bitmap);
    5                             }
    6 });

    六、常见消息API

    1 //Causes the Runnable r to be added to the message queue, to be run after the specified amount of time elapses.
    2 final boolean postDelayed(Runnable r, long delayMillis);

    七、新闻客户端

    需求分析:

    八、开源项目SmartImageView介绍

    1、把com包拷贝到当前工程

    2、使用SmartImageView的时候,布局文件定义控件需要包的完整路径加类名

    九、SmartImageView原理

  • 相关阅读:
    SqlSugar的基本使用
    File文件操作类
    FTP文件操作类
    ASP.NET WebApi使用Swagger做接口文档
    asp.net中WebService 捕获全局异常
    net log4net 通用配置
    jQuery插件开发模式(转)
    js 对Cookie进行增删改操作
    使用JQ实现相同行或列合并
    sql 取得某个时间段内的所有月份和日期
  • 原文地址:https://www.cnblogs.com/leishoulin/p/7420705.html
Copyright © 2011-2022 走看看