zoukankan      html  css  js  c++  java
  • Androidの多线程之HandlerThread

    1.Handler.post(Runnable),必须要有有Looper。

     1 package com.bvin.study.thread;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 import android.os.Handler;
     6 import android.os.HandlerThread;
     7 import android.os.Looper;
     8 import android.os.Message;
     9 import android.util.Log;
    10 
    11 public class MainActivity extends Activity {
    12     /** Called when the activity is first created. */
    13     
    14     /*private Handler handler = new Handler(){
    15 
    16         @Override
    17         public void handleMessage(Message msg) {
    18             // TODO Auto-generated method stub
    19             super.handleMessage(msg);
    20             setTitle((String)msg.obj);
    21             
    22         }
    23         
    24         
    25         
    26     };*/
    27     private Handler handler = null;
    28     
    29     public int flag = 0;
    30     @Override
    31     public void onCreate(Bundle savedInstanceState) {
    32         super.onCreate(savedInstanceState);
    33         /*Handler+HandlerThread*/
    34         HandlerThread handerThread = new HandlerThread("myHanderThread");//建立HandlerThread
    35         handerThread.start();//运行HandlerThread(一定要开始才能获取Looper.否则得到是空值)
    36         Looper looper = handerThread.getLooper();//获取消息循环
    37         handler = new Handler(handerThread.getLooper());//建立带消息循环的Handler
    38         handler.post(new WorkRun());//执行线程
    39         
    40         /*Thread+Runnable*/
    41         /*Thread th = new Thread(new WorkRun());
    42         th.start();*/
    43         
    44         Log.e("ID:"+Thread.currentThread().getId(), "MainThread is running");
    45         setContentView(R.layout.main);
    46         
    47     }
    48     
    49     
    50     private class WorkRun implements Runnable{
    51 
    52         @Override
    53         public void run() {
    54             // TODO Auto-generated method stub
    55             
    56             Log.e("ID:"+Thread.currentThread().getId(), "WorkThread is running");
    57             
    58             try {
    59                 Thread.sleep(1000*6);
    60             } catch (InterruptedException e) {
    61                 // TODO Auto-generated catch block
    62                 e.printStackTrace();
    63             }
    64             
    65         }
    66         
    67         
    68         
    69     }
    70 }
  • 相关阅读:
    Linux下管道编程
    【Windows】用信号量实现生产者-消费者模型
    初识【Windows API】--文本去重
    HDU 5183 Negative and Positive (NP) --Hashmap
    【ASC 23】G. ACdream 1429 Rectangular Polygon --DP
    UVALive 4670 Dominating Patterns --AC自动机第一题
    POJ 2225 / ZOJ 1438 / UVA 1438 Asteroids --三维凸包,求多面体重心
    我也来写2014年总结
    UVALive 4870 Roller Coaster --01背包
    UVALive 4864 Bit Counting --记忆化搜索 / 数位DP?
  • 原文地址:https://www.cnblogs.com/bvin/p/2665781.html
Copyright © 2011-2022 走看看