android中的线程的简单运用
来源:互联网 发布:java实现在线客服功能 编辑:程序博客网 时间:2024/05/14 01:00
新建了两个线程一个用来显示进度条,一个用来显示计数。
package com.fover;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;public class NotebookActivity extends Activity {private int iCount;private ProgressBar progress;private TextView textView;private int count;// 设置case标识符protected static final int STOP = 1;protected static final int NEXT = 2;protected static final int GOD = 3;protected static final int BLESS = 4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获得控件Button button = (Button) findViewById(R.id.game_button);progress = (ProgressBar) findViewById(R.id.progressBar1);Button button2 = (Button) findViewById(R.id.game_button2);textView = (TextView) findViewById(R.id.textviewforcount);button2.setOnClickListener(new timer());// 设置progressbar的最大值progress.setMax(100);// 设置progressbar的初始值progress.setProgress(0);// 设置progressbar的可视情况// progress.setVisibility(View.INVISIBLE); //不可见,但是progressbar依旧会占着位置// GONE参数隐藏ProgressBar并且不占位置progress.setVisibility(View.GONE);// 设置按钮的监听button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 新建一个线程Thread xx = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 20; i++) {try {// 设置计数器iCount = (i + 1) * 5;// 设置线程的休眠时间Thread.sleep(1000);// 当值为19时,也就是progressbar的// 进度条是100%的时候发送STOP信息给mHandlerif (i == 19) {Message msg = new Message();msg.what = STOP;mHandler.sendMessage(msg);// 当值不为19时,也就是进度条还没有达到百分百时候,发送NEXT信息给mHandler} else {Message msg = new Message();msg.what = NEXT;mHandler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();}}}});// 注意不要忘记这段代码xx.start();}});}//此段方法同上,不做过多解释了class timer implements OnClickListener {@Overridepublic void onClick(View v) {Thread cc = new Thread(new Runnable() {@Overridepublic void run() {for (int i = 0; i < 50; i++) {try {count = i;Thread.sleep(1000);if (i == 49) {Message sng = new Message();sng.what = GOD;mHandler.sendMessage(sng);} else {Message sng = new Message();sng.what = BLESS;mHandler.sendMessage(sng);}} catch (Exception e) {e.printStackTrace();}}}});cc.start();}}// 新建一個Handlerprivate Handler mHandler = new Handler() {// 接收message信息@Overridepublic void handleMessage(Message msg) {switch (msg.what) {// 接收到STOP信息将处理:将进度条设置为不可视,同时在屏幕上输出提示信息case STOP:progress.setVisibility(View.GONE);Toast.makeText(NotebookActivity.this, "进度条执行完毕",Toast.LENGTH_SHORT).show();break;// 接收到NEXT信息将处理:将进度条设置为可见,同时设置进度条的进度case NEXT:if (!Thread.currentThread().isInterrupted()) {progress.setVisibility(View.VISIBLE);progress.setProgress(iCount);}break;case GOD:textView.setText("已经结束了,亲");break;case BLESS:if (!Thread.currentThread().isInterrupted()) {textView.setText("已经失去了" + count + "秒");}break;default:break;}}};}
如有问题欢迎指正。
PS:参考CSDN上的先人源代码拼凑而成。
- android中的线程的简单运用
- android中的LayoutInflater简单运用
- 简单的Syncronized线程的同步运用
- 【Android】PopupWindow的简单运用
- android-传感器的简单运用
- android--ExpandableListView的简单运用
- Android中的LayoutInflater的运用
- Android中的Spinner的运用。
- Android中的GridView的运用
- android 运用线程
- Android中的线程与进程之间的关系简单解释
- android中关于sqlite的简单运用
- android中listview的超简单运用
- Android中数据库的简单运用
- android视频播放 vitamio的简单运用
- Android中ComponentName的简单运用
- Android之RecyclerView控件的简单运用
- android中的自定义属性的运用细节
- UI管理-UI management
- MyBatis的动态SQL详解
- 模板实例化事件
- Cookie特性总结
- springmvc +Extjs+swfUpload上传文件
- android中的线程的简单运用
- Java 概述、基本常识
- Python调用默认浏览器打开网页
- javascript知识点之特殊类型
- iphone开发中sqlite3说明
- 用Bolt引擎实现换肤指南
- control自定义事件指南
- 关于c#中timer的使用可能要注意的
- RMAN学习8——控制文件恢复(nocatalog模式)