Android——多线程编程练习题
2016-05-16 12:01
155 查看
随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
layout文件:
java类:
随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
layout文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.hanqi.testapp2.PractiseActivity4" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tvw1"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tvw2"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btt1" android:text="随机选择" android:onClick="btn_onClick"/> </LinearLayout>
java类:
package com.hanqi.testapp2; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class PractiseActivity4 extends AppCompatActivity { TextView tvw1; Button btt1; TextView tvw2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_practise4); tvw1 = (TextView)findViewById(R.id.tvw1); btt1 = (Button)findViewById(R.id.btt1); tvw2 = (TextView)findViewById(R.id.tvw2); } String c1 = "北京"; String c2 = "上海"; public void btn_onClick(View v) { //创建子线程1 new Thread(){ @Override public void run() { for (int i=0;i<20;i++) { if(i%2==0) { c1=""; } else { c1="北京"; } runOnUiThread(new Runnable() { @Override public void run() { tvw1.setText(c1); } }); //暂停 try { Thread.sleep((int) (Math.random()*1000)); } catch (Exception e) { } } runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(PractiseActivity4.this, c1 + "循环完成", Toast.LENGTH_SHORT).show(); } }); } }.start(); //创建子线程2 new Thread(){ @Override public void run() { for (int i=0;i<20;i++) { if(i%2==0) { c2=""; } else { c2="上海"; } runOnUiThread(new Runnable() { @Override public void run() { tvw2.setText(c2); } }); //暂停 try { Thread.sleep((int) (Math.random()*1000)); } catch (Exception e) { } } runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(PractiseActivity4.this, c2 + "循环完成", Toast.LENGTH_SHORT).show(); } }); } }.start(); } }
随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
相关文章推荐
- Mac OSX 下 手动更新 Android Studio
- Android通用流行框架大全【整理】
- Gitlab的使用
- Android 自定义系统通知栏的颜色
- Android开发系列通信篇之EventBus
- Android开发之 混淆加固和反编译
- Android 触摸事件传递机制
- 安卓指令和命令学习总结
- Android 不开WiFi获取Mac地址 夜未央
- Android中获取正在运行的服务-------ActivityManager.RunningServiceInfo的使用
- android api 中文 (73)—— AdapterView
- Android studio适配6.0的一些小问题
- 使用详解及源码解析Android中的Adapter、BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter
- android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一
- 安卓-页面卡顿-分析方法
- Android滑动头部控件
- 自定义Drawable Demo(圆角/圆形图片,Material动画)
- Android基础学习第三篇—Intent的用法
- Android判断是否root