android开发之Handler
Handler实例
子类需要继承Hendler类,并重写handleMessage(Message msg) 方法,用于接受线程数据,主要看具体实例,重要的部分都已给了注释:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private WebView wv =null;
private Handler h = new Handler();
public final String TAG = "UNISDP";
public final String MY_LOG = "my_log";
MyHandler myHandler;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
wv = (WebView) findViewById(R.id.web);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSaveFormData(false);
webSettings.setSavePassword(false);
webSettings.setSupportZoom(false);
wv.addJavascriptInterface(new runJavaScript(), "myjs");
wv.loadUrl(sdFilePath);
myHandler = new MyHandler();
// 当创建一个新的Handler实例时, 它会绑定到当前线程的消息队列中,开始分发数据MyThread m = new MyThread();
Thread getDataFromServer_thread = new Thread(m);
getDataFromServer_thread.start();
}
取数据线程 从页游服务器获取数据
class MyThread implements Runnable
{
public void run()
{
Message msg ;
Bundle b ;
while(true)
{
try
{
Thread.sleep(1000);
msg = new Message();
b = new Bundle();
// 存放数据
b.putString("value", "发送给UI线程的数据...");
msg.setData(b);
MainActivity.thiswww.sangpi.commyHandler.sendMessage(msg);
// 向Handler发送消息,更新UI
}
catch (InterruptedException e)
{
e.printStackTrace();
}}
}
}
// 接受消息,处理消息 ,此Handler会与当前主线程一块运行
class MyHandler extends Handler
{
public MyHandler()
{
}
public MyHandler(Looper L)
{
super(L);
}
// 子类必须重写此方法,接受数据
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
// 此处可以更新UI
Bundle b = msg.getData();
String strValue = https://www.it610.com/article/b.getString("value");
//MainActivity.this.button.append(color);
Log.i(MY_LOG,strValue);
}
}
【android开发之Handler】}
推荐阅读
- android第三方框架(五)ButterKnife
- 开学第一天(下)
- 20170612时间和注意力开销记录
- 深入理解Go之generate
- 开花店的前景怎么样()
- 眉头开了
- 上班后阅读开始变成一件奢侈的事
- Android中的AES加密-下
- 小影写在2018九月开学季
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。