編輯:關於android開發
本文主要介紹Android的Handler的使用方法。Handler可以發送Messsage和Runnable對象到與其相關聯的線程的消息隊列。每個Handler對象與創建它的線程相關聯,並且每個Handler對象只能與一個線程相關聯。
◆ 通過Runnable在子線程中更新界面的例子
在onCreate中創建Handler
public class HandlerTestApp extends Activity {
Handler mHandler;
TextView mText;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mHandler = new Handler();//創建Handler
mText = (TextView) findViewById(R.id.text0);//一個TextView
}
構建Runnable對象,在runnable中更新界面,此處,我們修改了TextView的文字.此處需要說明的是,Runnable對象可以再主線程中創建,也可以再子線程中創建。我們此處是在子線程中創建的。
Runnable mRunnable0 = new Runnable()
{
@Override
public void run() {
// TODO Auto-generated method stub
mText.setText("This is Update from ohter thread, Mouse DOWN");
}
};
private void updateUIByRunnable(){
new Thread()
{
//Message msg = mHandler.obtainMessage();
public void run()
{
//mText.setText("This is Update from ohter thread, Mouse DOWN");//這句將拋出異常
mHandler.post(mRunnable0);
}
}.start();
}
◆ 用Message在子線程中來更新界面
用Message更新界面與Runnable更新界面類似,只是需要修改幾個地方。
實現自己的Handler,對消息進行處理
private class MyHandler extends Handler
{
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch(msg.what)
{
case UPDATE://在收到消息時,對界面進行更新
mText.setText("This update by message");
break;
}
}
}
在新的線程中發送消息
private void updateByMessage()
{
//匿名對象
new Thread()
{
public void run()
{
//mText.setText("This is Update from ohter thread, Mouse DOWN");
//UPDATE是一個自己定義的整數,代表了消息ID
Message msg = mHandler.obtainMessage(UPDATE);
mHandler.sendMessage(msg);
}
}.start();
}
Android學習指南之二十:Content Provider的使用
Content Provider屬於Android應用程序的組件之一,作為應用
Android Studio多渠道打包
Android Studio多渠道打包 我們開發一個APP在上傳應用市場之前,有時候會遇到要根據不同平台打多個apk包的問題。由於Android的應用市場比較多,主流的應
Android—PopupWindow的簡單使用,androidpopupwindow
Android—PopupWindow的簡單使用,androidpopupwindowPopupWindow 是一個可以顯示在當前 Activity 之上的浮動容器,這個
Android Studio導入第三方類庫的方法,androidstudio
Android Studio導入第三方類庫的方法,androidstudio一、導入*.jar包 1.直接copy ①復制*.jar包,粘貼到主工程目錄的libs下邊 &