网络编程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,3000,1000);//三秒后每隔一秒执行一次run方法