Android中的多线程技术

 Android中的多线程技术

这里主要是运用Handler消息处理机制。

 

 1 protected void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         setContentView(R.layout.activity_main);
 4         handler = new Handler(){
 5             //编号what为1的Message
 6             public void handleMessage(Message msg){
 7                 switch (msg.what) {
 8                 case 1:
 9                     Integer i = (Integer)msg.obj;
10                     tvl.setText(i + "");
11                     break;
12                 case 2:
13                     Date d = (Date)msg.obj;
14                     tv2.setText(d.toString());
15                     break;
16                 }
17             }
18         };//handler就是当前主线程的消息队列(集合)
19         
20         
21         tvl = (TextView)super.findViewById(R.id.textView1);
22         btn1 = (Button)super.findViewById(R.id.button1);
23         
24         btn1.setOnClickListener(new View.OnClickListener() {
25             
26             @Override
27             public void onClick(View arg0) {
28                 new Thread(new Runnable() {
29                     @Override
30                     public void run() {
31                         while(flag){
32                             i++;
33                             try {
34                                 Thread.sleep(1000);
35                             } catch (InterruptedException e) {
36                                 // TODO Auto-generated catch block
37                                 e.printStackTrace();
38                             }
39                             Message ms = new Message();
40                             ms.what = 1; //表示显示数字的消息
41                             ms.obj = i;
42                             handler.sendMessage(ms);
43                             
44                         }
45                     }
46                 }).start();
47             }
48         });
49         
50         tv2 = (TextView)super.findViewById(R.id.textView2);
51         btn2 = (Button)super.findViewById(R.id.button2);
52         btn2.setOnClickListener(new View.OnClickListener() {
53             @Override
54             public void onClick(View arg0) {
55                 // TODO Auto-generated method stub
56                 new Thread(new Runnable() {
57                     public void run() {
58                         while ( 1 == 1){
59                             try {
60                                 Thread.sleep(1000);
61                             } catch (InterruptedException e) {
62                                 // TODO Auto-generated catch block
63                                 e.printStackTrace();
64                             }
65                             Date d  = new Date();
66                             Message msg = new Message();
67                             msg.what = 2;
68                             msg.obj = d;
69                             handler.sendMessage(msg);
70                         }
71                     }
72                 }).start();
73                 
74             }
75         });
76         
77         
78     }
79 
80     @Override
81     public boolean onCreateOptionsMenu(Menu menu) {
82         // Inflate the menu; this adds items to the action bar if it is present.
83         getMenuInflater().inflate(R.menu.main, menu);
84         return true;
85     }
86 
87 }

 

 

 

转载于:https://www.cnblogs.com/EmperLin/p/3492714.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值