編輯:關於Android編程
一、要修改view對象中顯示的內容:
只有創建view對象的線程 才可以更新view對象裡面的內容。
其實所有的view對象都是在主線程裡面創建的 名字 main
所有的與ui相關的界面都是在主線程裡面創建的.
二、業務需求:子線程每隔2秒要去修改view對象顯示的內容:(要通過消息機制完成該操作):
三、更新view顯示基本原理:
當子線程要更新view裡的內容時,就讓子線程發送一個消息給主線程,主線程再根據消息的內容進行操作。
主線程裡面有消息隊列(message queue),可以存放一組消息。並且還有一個輪詢器,定期的輪詢消息隊列,查看是否有消息。如果發現有消息,;輪詢器會把消息取出來。
在主線程中創建消息的處理者handler對象,用於處理在消息隊列中取出的消息。
四、代碼實現:
public class TestActivity extends Activity{
privateTextView tv;
//在主線程中創建handler對象(消息處理者)
private Handler handler = new Handler(){
//子線程發送消息觸發的函數:
public voidhandleMessage(Message msg) {
super.handleMessage(msg);
String text = (String) msg.obj; //獲取消息的內容
tv.setText(text); //將內容設置給view對象。
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView) this.findViewById(R.id.tv);
System.out.println(Thread.currentThread().getName());
// tv.setText("haha");
//開啟一個子線程 每個2秒 就把textview 裡面的內容更改一下
new Thread(){
public void run() {
System.out.println("子線程 "+Thread.currentThread().getName());
for(int i=0;i<100;i++) {
try{
sleep(2000);
}catch (InterruptedException e) {
e.printStackTrace();
}
Messagemsg = new Message();//創建message對象。
msg.obj= "haha"+i; //為消息設置值
handler.sendMessage(msg);//使用handler在子線程中發送消息。
}
};
}.start();
}
}
Android系統中的Activity可以說一件很贊的設計,它在內存管理上良好的設計,使得多任務管理在Android系統中運行游刃有余。但是Activity絕非啟動展示在
在Android開發中,我們不可避免的會做到注冊功能,而現在的注冊大多數都是用手機去注冊的,那麼注冊的時候都會要求用獲取驗證碼的方式去驗證,我們接下來就來實戰一下自定義
前言在開發中,一個良好的開發習慣以及一個開發規范可能會讓你少走很多彎路,也會一定程度上的提高代碼的可讀性,可維護性和可拓展性。當隨著需求的不斷變更,需要維護項目的時候。當
在沒介紹正文之前先給大家說下poi是什麼意思。由於工作的關系,經常在文件中會看到POI這三個字母的縮寫,但是一直對POI的概念和含義沒有很詳細的去研究其背後代表的意思。今