那消逝的岁月

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.testapp2.TestActivity6"
11     android:orientation="vertical">
12 
13     <TextView
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="城市1"
17         android:id="@+id/tv_3"/>
18     <TextView
19         android:layout_width="match_parent"
20         android:layout_height="wrap_content"
21         android:text="城市2"
22         android:id="@+id/tv_4"/>
23     <Button
24         android:layout_width="match_parent"
25         android:layout_height="wrap_content"
26         android:text="启动"
27         android:onClick="bt1_OnClick"/>
28 
29     <TextView
30         android:layout_width="wrap_content"
31         android:layout_height="wrap_content"
32         android:text="接收的消息"
33         android:id="@+id/tv_5"/>
34 
35     <Button
36         android:layout_width="match_parent"
37         android:layout_height="wrap_content"
38         android:text="发消息"
39         android:onClick="bt2_OnClick"/>
40 
41     <TextView
42         android:layout_width="wrap_content"
43         android:layout_height="wrap_content"
44         android:text="10"
45         android:id="@+id/tv_6"
46         android:layout_gravity="center"/>
47 
48     <Button
49         android:layout_width="match_parent"
50         android:layout_height="wrap_content"
51         android:text="增加"
52         android:onClick="bt3_OnClick"
53         android:id="@+id/bt_3"/>
54 
55     <Button
56         android:layout_width="match_parent"
57         android:layout_height="wrap_content"
58         android:text="减少"
59         android:onClick="bt3_OnClick"
60         android:id="@+id/bt_4"/>
61 
62     <Button
63         android:layout_width="match_parent"
64         android:layout_height="wrap_content"
65         android:text="暂停"
66         android:onClick="bt3_OnClick"
67         android:id="@+id/bt_5"
68         android:enabled="false"/>
69 
70 </LinearLayout>
  1 package com.hanqi.testapp2;
  2 
  3 import android.os.Handler;
  4 import android.os.Message;
  5 import android.support.v7.app.AppCompatActivity;
  6 import android.os.Bundle;
  7 import android.view.View;
  8 import android.widget.Button;
  9 import android.widget.TextView;
 10 import android.widget.Toast;
 11 
 12 import java.util.Random;
 13 
 14 public class TestActivity6 extends AppCompatActivity {
 15 
 16     TextView tv_3, tv_4, tv_5,tv_6;
 17 
 18     Button bt_3, bt_4, bt_5;
 19 
 20     //定义Handler
 21     Handler h = new Handler(){
 22         @Override
 23         public void handleMessage(Message msg) {
 24             super.handleMessage(msg);
 25 
 26             //处理消息
 27             if (msg.what == 1)
 28             {
 29                 String m = msg.obj.toString();
 30 
 31                 tv_5.setText(tv_5.getText() + " " + m);
 32             }
 33             else if (msg.what == 2)
 34             {
 35                 tv_5.setText(tv_5.getText() + " 空消息");
 36             }
 37         }
 38     };
 39 
 40     int i = 10;
 41 
 42     Handler hl = new Handler()
 43     {
 44         @Override
 45         public void handleMessage(Message msg) {
 46             super.handleMessage(msg);
 47 
 48             switch (msg.what)
 49             {
 50                 case 1:
 51 
 52                     bt_3.setEnabled(false);
 53                     bt_4.setEnabled(true);
 54                     bt_5.setEnabled(true);
 55 
 56                     if (i == 20)
 57                     {
 58                         bt_5.setEnabled(false);
 59                         return;
 60                     }
 61 
 62                     i++;
 63 
 64                     tv_6.setText(i + "");
 65 
 66                     //发送
 67                     hl.sendEmptyMessageDelayed(1, 1000);
 68 
 69                     hl.removeMessages(2);
 70 
 71                     break;
 72 
 73                 case 2:
 74 
 75                     bt_3.setEnabled(true);
 76                     bt_4.setEnabled(false);
 77                     bt_5.setEnabled(true);
 78 
 79                     if (i == 1)
 80                     {
 81                         bt_5.setEnabled(false);
 82                         return;
 83                     }
 84 
 85                     i--;
 86 
 87                     tv_6.setText(i + "");
 88 
 89                     //发送
 90                     hl.sendEmptyMessageDelayed(2,1000);
 91 
 92                     hl.removeMessages(1);
 93 
 94                     break;
 95 
 96                 case 3:
 97 
 98                     bt_3.setEnabled(true);
 99                     bt_4.setEnabled(true);
100                     bt_5.setEnabled(false);
101 
102                     hl.removeMessages(1);
103                     hl.removeMessages(2);
104 
105                     break;
106             }
107         }
108     };
109 
110     @Override
111     protected void onCreate(Bundle savedInstanceState) {
112         super.onCreate(savedInstanceState);
113         setContentView(R.layout.activity_test6);
114 
115         tv_3 = (TextView)findViewById(R.id.tv_3);
116         tv_4 = (TextView)findViewById(R.id.tv_4);
117         tv_5 = (TextView)findViewById(R.id.tv_5);
118         tv_6 = (TextView)findViewById(R.id.tv_6);
119 
120         bt_3 = (Button)findViewById(R.id.bt_3);
121         bt_4 = (Button)findViewById(R.id.bt_4);
122         bt_5 = (Button)findViewById(R.id.bt_5);
123     }
124 
125 
126     //3个按钮
127     public void bt3_OnClick(View v)
128     {
129         switch (v.getId())
130         {
131             case R.id.bt_3:
132 
133                 //发送增加消息
134                 hl.sendEmptyMessage(1);
135 
136                 break;
137 
138             case R.id.bt_4:
139 
140                 //发送减少消息
141                 hl.sendEmptyMessage(2);
142 
143                 break;
144 
145             case R.id.bt_5:
146 
147                 //发送暂停消息
148                 hl.sendEmptyMessage(3);
149 
150                 break;
151         }
152     }
153 
154 
155     //发消息
156     public void bt2_OnClick(View v)
157     {
158         //启动线程
159         new Thread(){
160             @Override
161             public void run() {
162 
163                 //发送消息
164                 //1、创建Message
165                 Message m = Message.obtain();
166                 m.what = 1;//id
167                 m.obj = "新信息1";
168 
169                 //2、发送即时消息
170                 h.sendMessage(m);
171 
172                 m = Message.obtain();
173                 m.what = 1;//id
174                 m.obj = "新信息2";
175 
176                 //发送延时消息
177                 h.sendMessageDelayed(m,2000);
178 
179                 h.sendEmptyMessage(2);
180 
181                 h.sendEmptyMessageDelayed(2,3000);
182             }
183         }.start();
184     }
185 
186 
187     public void bt1_OnClick(View v)
188     {
189         tv_3.setText("");
190         tv_4.setText("");
191 
192         //创建子线程1
193         new Thread(){
194             @Override
195             public void run() {
196 
197                 for (int i = 0; i<10; i++) {
198                     try {
199                         //暂停时间随机
200                         Thread.sleep(new Random().nextInt(2000));
201                     }
202                     catch (Exception e)
203                     {
204 
205                     }
206 
207                     runOnUiThread(new Runnable() {
208                         @Override
209                         public void run() {
210 
211                           tv_3.setText(tv_3.getText() + "北京");
212                         }
213                     });
214 
215                 }
216 
217                 runOnUiThread(new Runnable() {
218                     @Override
219                     public void run() {
220                         Toast.makeText(TestActivity6.this, "北京 循环完成", Toast.LENGTH_SHORT).show();
221                     }
222                 });
223             }
224         }.start();
225 
226 
227 
228         //创建子线程2
229         new Thread(){
230             @Override
231             public void run() {
232 
233                 for (int i = 0; i<10; i++) {
234                     try {
235                         //暂停时间随机
236                         Thread.sleep(new Random().nextInt(2000));
237                     }
238                     catch (Exception e)
239                     {
240 
241                     }
242 
243                     runOnUiThread(new Runnable() {
244                         @Override
245                         public void run() {
246 
247                             tv_4.setText(tv_4.getText() + "香港");
248                         }
249                     });
250 
251                 }
252 
253                 runOnUiThread(new Runnable() {
254                     @Override
255                     public void run() {
256                         Toast.makeText(TestActivity6.this, "香港 循环完成", Toast.LENGTH_SHORT).show();
257                     }
258                 });
259             }
260         }.start();
261     }
262 }

posted on 2016-05-18 10:07  那消逝的岁月  阅读(276)  评论(0编辑  收藏  举报