ProgessBaはHandlerを使用します.

3365 ワード

e.g.Handlerを使ってProgessBarを更新します.
--------------------
public class HandleActivity extendds Activity{/声明2つのボタンコントロールprvate ButtototontBututtotototon=null;prvate ButtontendButton=null;public void onCrate(Bunndle savedInstastancte){super.ondedededededededededededededededededeststststststststit)){ susususuper.on.on.onttttttblblblblblblblblatttttttttttttblblblblblblblblblatttttttttttttttter.post(udateThread);Handlerのpostメソッドを呼び出して、実行するスレッドのオブジェクトを列に追加します.}class End ButotonListener implemens OClikListener{public void onClickk(View){handle.removeCallbacks(udateThread)}/Handlehander=Handlehandlenlenlenlenlinrオブジェクトを作成します.;/実行する操作をスレッドオブジェクトのrunメソッドに書き込みます.Runnale udateThread=new Runnable(){public void run(){System.out.println]////runメソッドの内部でpostDelayedまたはpostメソッドhanderpoyedを実行します.
  
 
 
下のコードはプログレスバーです.
Runnable progresread=new Runnablble(){int i=0;public void run(){i=i+10、//メッセージオブジェクトを入手し、MessageクラスはAndroidオペレーシステムからMessagg=udateBarHandler.obatainMessagagage()//argargtremtttdededededededededededededetttttttttttdedededededededededededededededededededededer 1=引数の引数の引数は、引数の1のオブジェクトに設定されています.terruptedException e)「e.print StarkTrace()」///………………………….clasButtonOClikListener implementss OCCCClikListener{@Override public void onCliick(View arg 0){handle.post(udateThread)=Handagagagagagagebledededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededegress(msg.arg 1);handler.post(udateThread);prvate Runnable udateThread=new Runnable(){int i=0、@Override public void run(){i+=10;Message msg=handle.atainMessage();msg.arg 1=i;try{Thread. sleepp(3000)/Exttttttttttcaptprintintaptaptaptaptap/InInttttttttdedededededededededededededededededededededededededentatttttttttttdededededededededededededededededentattttttsg);if(i=100){handler.removeCallbacks(udateThread)};
 ...............................................................................
 
 
      
8.2.Handlerとスレッド
1.post方法を採用してメッセージをキューに入れる過程で、新しいスレッドが起動されずに、run方法を起動しました.解決方法
まずHandlerThreadオブジェクトを起動し、HanderThreadのget Looper()メソッドを使用する前に、この種類のstart()方法を使用しなければなりません.
それから自分で定義したhandlerはMyHandlerを復唱しなければなりません.
 
2.Bundleの使い方
3.新しいスレッドでメッセージを処理する方法
  public class ThreadActivity extends Activity{@Override protected void onCreate(Bundel savedInstance State){super.onCreate(savedInstant);set ContentView(R.layout.activity 2);System.Thadurt.There.Thert.Thedenturt.;//HandlerThreadオブジェクトを生成し、Looperを使ってメッセージキューを処理する機能を実現しました.このクラスはAndroidからHandlerThread handlendandandandandandandandhandleThread=new HandlerThread(「handlemuthread」)、handleThread. start()、MyHandler mHandlemHandlemHandlemHandlemHandlemHandandandandandandandandadedededededededededededededededededededededededededededededededededededededededededededededededededededededer=MyHandler=MyHaBundele();b.putInt(「age」,20)b.putString(“name”,“Jon”)///msg.obj=“abc”;msg.setData(b);/msgをターゲットオブジェクトに送信する、いわゆるターゲットオブジェクトとは、このmsgオブジェクトを生成するhandays.sendToTargget()、@classMyHandblefiblepurapupublefiblendededefiblpublpupurpublpurpupurpurpublopoper@MyHapudedededefifififififififiblpublpublpublpublpublpublpublpublpublpurpublefififififififififiblic void handleMessage(Message msg){System.out.println(「Handler」+Thread.current Thread().getId()}