android學習筆記之Handler

2021-08-25 23:46:43 字數 1717 閱讀 8824

handler handler = new handler();

runable update = new runnable(){

publicvoid run(){

system.out.println(「update」);

handler.postdelayed(update,3000); //3秒後將update執行緒新增到佇列中

handler.post(update); //將update執行緒新增到佇列中,實際上是執行update中的run方法,而不是以start方式啟動執行緒,所以是在同乙個執行緒中執行,而不是新啟動乙個執行緒。

可以通過thread.currentthread().getid();來判斷是否同乙個執行緒

handler.removecallbacks(update); //

handler handler = new handler(){

publicvoid handlemessage(message msg){

…..msg.arg1

…..msg.arg2

(string)msg.obj

message msg = handler.obtainmessage();

msg.arg1 = 1;

msg.arg2 = 1;

msg.obj = 「abc」

handler.sendmessage(msg); //將msg物件加入訊息佇列當中,handlemessage方法就會接收到

使用新執行緒來處理訊息

//生成乙個handlerthread物件,實現了使用looper來處理訊息佇列的功能

handlerthread handlerthread = newhandlerthread(「handler_thread」);

//在使用handlerthread的getlooper()方法之前,必須先呼叫該類的start(),否則getlooper()取出的為空

handlerthread.start();

myhandler myhandler =newmyhandler(handlerthread.getlooper());

message msg = nyhandler.obtainmessage();

msg.sendtotarget(); //將msg傳送到目標物件,所謂的目標物件就是生成該msg物件的handler物件

class myhandler extends handler{

publicmyhandler(){ //在main執行緒中執行

publicmyhandler(looper looper)

super(looper); //指定myhandler在looper這個執行緒中執行,而不是main執行緒執行

publicvoid handlermessage(message msg){

通過message來傳送大量資料時,應該使用setdata(bundle bundle)

bundle b = new bundle();

b.putint(「age」,19);

b.putstring(「name」, 「jhon」);

msg.setdata(b);

msg.sendtotarget();

取資料時:

bundle b = msg.getdata();

int age = b.getint(「age」);

string name = b.getstring(「name」);

Android學習筆記之fragment

fragment 二 有什麼用?一般介面設計 通過fragment實現 三 fragment怎麼用 生命週期方法被呼叫契機 新建乙個類繼承fragment或者fragment的派生類 listfragment preferencefragment 2.fragment新增使用者介面 引數 注 如果你...

Android學習筆記之Intent

例如 startactivity new intent mainactivity.this,myaty.class 使用startactivity方法後出現at dalvik.system.nativestart.main native method 這一錯誤的原因是因為忘了在androidmani...

android學習筆記之Activity

建立activity 的要點 乙個activity 就是乙個類,並且這個類要繼承activity 需要複寫oncreate方法 每乙個activity 都需要在androidmanifest.xml 中進行配置,包含filter 的為主activity。為activity新增必要的控制項 activ...