編輯:關於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(); }
Content Provider屬於Android應用程序的組件之一,作為應用
Android Studio多渠道打包 我們開發一個APP在上傳應用市場之前,有時候會遇到要根據不同平台打多個apk包的問題。由於Android的應用市場比較多,主流的應
Android—PopupWindow的簡單使用,androidpopupwindowPopupWindow 是一個可以顯示在當前 Activity 之上的浮動容器,這個
Android Studio導入第三方類庫的方法,androidstudio一、導入*.jar包 1.直接copy ①復制*.jar包,粘貼到主工程目錄的libs下邊 &