Handler的使用3 用法
来源:互联网 发布:apache ant 1.8.4下载 编辑:程序博客网 时间:2024/05/19 05:40
package com.example.read_xml;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et;
private TextView tv;
private TextService service;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.et_xml);
tv = (TextView) findViewById(R.id.tv_xml);
service = new TextService();
/* Handler myHandler=new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
}
}
};*/
/*首先, 线程中, 是不能控制UI的, 这再任何操作系统, 都应该会出现问题,
要用消息控制,在线程中加消息发送, 在handlemessage中, 截获你的消息, 来更新UI*/
}
public void go(){
new Thread(){ // Android4.0后 联网操作等耗时操作不能再放到主线程中了。
public void run(){
try {
// 得到xml文件的地址 转换为字符串 去掉空字符
String path = et.getText().toString().trim();
// 访问网络 得到xml文件内容
final String text;
text = service.getText(path);
// tv.setText(text); 创建了新线程后,但是这个操作不允许在新线程中操作。解决如下
handler.post(new Runnable(){
// post就是开个新的线程执行你想要做的事
// handler.post(Runnable) 中的Runnable 会在handler 所在的线程执行, 也就是View 所在的UI线程
@Override
public void run() {
tv.setText(text);
}});
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "服务器忙", 1).show();
}
}
}.start();
}
}
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et;
private TextView tv;
private TextService service;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText) findViewById(R.id.et_xml);
tv = (TextView) findViewById(R.id.tv_xml);
service = new TextService();
/* Handler myHandler=new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
}
}
};*/
/*首先, 线程中, 是不能控制UI的, 这再任何操作系统, 都应该会出现问题,
要用消息控制,在线程中加消息发送, 在handlemessage中, 截获你的消息, 来更新UI*/
}
public void go(){
new Thread(){ // Android4.0后 联网操作等耗时操作不能再放到主线程中了。
public void run(){
try {
// 得到xml文件的地址 转换为字符串 去掉空字符
String path = et.getText().toString().trim();
// 访问网络 得到xml文件内容
final String text;
text = service.getText(path);
// tv.setText(text); 创建了新线程后,但是这个操作不允许在新线程中操作。解决如下
handler.post(new Runnable(){
// post就是开个新的线程执行你想要做的事
// handler.post(Runnable) 中的Runnable 会在handler 所在的线程执行, 也就是View 所在的UI线程
@Override
public void run() {
tv.setText(text);
}});
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "服务器忙", 1).show();
}
}
}.start();
}
}
0 0
- Handler的使用3 用法
- Handler的使用2 各种用法
- Handler的用法
- Handler的用法
- Handler的用法2
- Handler的用法
- Android Handler的用法
- android Handler的用法
- Handler的用法
- Handler的用法
- handler的具体用法
- Handler的用法
- Handler的用法总结
- Handler的用法
- Handler的用法
- HandLer的用法
- Handler的用法
- Handler的一些用法
- Cocos2dx 3.0 过渡篇(十七) std::bind与CC_CALLBACK不得不说的故事
- mysql
- Android得到手机屏幕的宽高
- 【问题汇总】透明Activity引起的问题
- php过滤特殊危险字符的总结
- Handler的使用3 用法
- 什么是内部时钟方式和外部时钟方式 MCS-51单片机外部
- 网络是否连接
- 面向对象--java学习(java编程思想)笔记
- HDU - 2594 Simpsons’ Hidden Talents
- 将网页另存为pdf格式
- 程序代码怎么才能更好地索引
- java的聊天小程序
- License study