Android网络编程1

网络编程1

--------此笔记根据黑马程序员的授课视频所记录
Activity
网络编程1
网络编程2
广播接收者
服务
内容提供者
多媒体

1.基本理解

httpurlconnection:用于发送或接收数据

​ ScrollView只能有一个子组件

2.消息机制的写法

​ 【1】anr Application not respond 应用无响应 主线程(UI线程)

​ 【2】如果在主线程中进行了耗时的操作(比如连接网络、拷贝大量数据、Thread.sleep() )就会报anr

​ 【3】为了避免anr 可以把耗时的操作放到子线程中去 自己新建一个线程

new Thread(){
            public void run() {
            //此处为子线程(此处不能进行更新UI的操作)
            }.start();

​ 【4】在4.0之后谷歌强制性要求了连接网络不能在主线程进行访问

​ 【5】只有主线程才能更新UI

​ 【6】消息机制

3.handler原理

​ 【1】handler直接翻译:助手。

​ 【2】handler使用步骤

​ 1.在主线程定义一个Handler(一般来说使用Handler就会重写handler中的handleMessage方法)

private Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg){
			//此处可以接收msg中的消息来进行UI的更新
        }
    };

​ 2.创建一个Message,然后用在主线程创建的handler对象发送消息

Message msg = new Message();
msg.obj = "要携带的信息";
handler.sendMessage(msg)//只要一发消息,主线程中的handleMessage方法就会执行,就可以进行UI的更新

在这里插入图片描述

4.runOnUiThread写法

​ 他的存在就是为了直接在子线程更新UI

​ run(执行)OnUi(在UI)Thread(线程)

​ 这句API不管在什么位置上调用,这个action都在UI线程里运行

runOnUiThread(new Runable(){
    pubilc void run(){
        //run方法一定执行在UI线程里
    }
});

​ 【1】如果仅仅就是用来更新UI 那么就用runOnUiThread就行了

​ 【2】有的时候可以通过Handler发送消息携带数据 这个时候就必须要用Handler

5.常见消息Api(Handler)

API(应用开发接口)

//5秒之后执行run方法  相当于sleep或定时器Timer①  
new Handler().postDelayed(new Runnable(){
   public void run(){
       //run方法
},5000);

注释:
①关于定时器Timer

在这里插入图片描述

Timer time = new Timer();
TimerTask task = new TimerTask(){
    public void run(){
        //定时完要执行的方法(此处属于子线程)
    }
};
timer.schedule(task,5000);//五秒钟后执行run方法
timer.schedule(task,30001000);//三秒后每隔一秒执行一次run方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值