閱讀569 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android中的線程

Android 平台中多線程應用很廣泛,在 UI 更新、遊戲開發和耗時處理(網絡通信等)等方麵都需要多線程。 Android 線程涉及到的技術有: Handler, Message,MessageQueue,Looper,HandlerThread。

public void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

           setContentView(R.layout.main);

 

           btnEnd = (Button) findViewById(R.id.btnEnd);

           btnEnd.setOnClickListener(new OnClickListener() {

                    @Override

                    public void onClick(View v) {

                             isRunning = false;

                    }

           });

          

           labelTimer = (TextView) findViewById(R.id.labelTimer);

          

           HandlerThread thread = new HandlerThread("MyHandlerThread");

           thread.start();

          

           handler = new Handler(thread.getLooper());

          

           Runnable r = new Runnable() {

                    public void run() {

                             if (isRunning) {

                                       labelTimer.setText(" 逝去了 " +timer + " ");

                                       timer++;

                                       handler.postDelayed(this, 1000);

                             }

 

                    }

           };

           handler.postDelayed(r, 1000);

 

}

}

new HandlerThread("MyHandlerThread") 創建 HandlerThread 線程,通過 thread.start() 方法啟動該線程。 HandlerThread getLooper() 方法可以獲得與 HandlerThread 線程對象關聯的 Looper 對象。再用 Looper 對象構建 new Handler(looper)

最後更新:2017-04-02 06:51:43

  上一篇:go Android多媒體開發--資源文件播放
  下一篇:go bitmap 設置圖片尺寸,避免 內存溢出 OutOfMemoryError的優化方法