博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android开发】线程与消息处理-通过实现Runnable接口来创建线程
阅读量:7062 次
发布时间:2019-06-28

本文共 1538 字,大约阅读时间需要 5 分钟。

利用Runnabe接口来创建线程,实现这样一个效果:在屏幕上有一个"开始"和一个"结束"按钮,单击"开始"按钮,将在日志(Log)面板中输出循环变量的值;单击"停止"按钮,将终端线程。
界面资源文件:
rea/layout/main.xml:

界面效果如图

MainActivity:
package com.example.test;    import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;  public class MainActivity extends Activity implements Runnable{  	private Thread thread;	int i=0;    @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);        Button startButton=(Button)findViewById(R.id.button1);//获取开始按钮        startButton.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View arg0) {				 i=0;				thread=new Thread(MainActivity.this);//创建一个线程				thread.start();//开启线程			}		});                Button endButton=(Button)findViewById(R.id.button2);//获取结束按钮        endButton.setOnClickListener(new OnClickListener() {						@Override			public void onClick(View arg0) {				 if(thread!=null){					 thread.interrupt();//中断线程					 thread=null;				 }				 Log.i("提示:", "中断线程");			}		});	}	@Override	public void run() {		while(!Thread.currentThread().isInterrupted()){			i++;			Log.i("循环变量", String.valueOf(i));		}			}	@Override	protected void onDestroy() {		 if(thread!=null){			 thread.interrupt();//中断线程			 thread=null;		 }		 Log.i("提示:", "因Activity结束中断线程");		super.onDestroy();	}}

运行结果和按键之后的效果如图所示

转载请注明出处:

你可能感兴趣的文章
大咖丨昆仑数据陈晨:工业大数据真正要做的是智能分析和智能决策
查看>>
[LintCode] Linked List Cycle 单链表中的环
查看>>
WF4.0实战(二十三):自定义工作流活动的外观的两种方式
查看>>
动画在webapp中的现状
查看>>
权限框架 - shiro 自定义realm
查看>>
基于MVC4+EasyUI的Web开发框架经验总结(16)--使用云打印控件C-Lodop打印页面或套打报关运单信息...
查看>>
MySQL 语句使用到的关键字 函数 记录
查看>>
5.5. VoIP / Meeting
查看>>
[LeetCode] Valid Palindrome
查看>>
聊下 git remote prune origin
查看>>
【转】如何用 Chrome for Android 做远程遥控 debugging
查看>>
Ajax异步验证登陆或者注册
查看>>
整合百度推送碰到的问题
查看>>
使用Fusioncharts实现后台处理进度的前台展示
查看>>
CentOS 7下配置本地yum源及yum客户端
查看>>
Mybatis中的collection、association来处理结果映射
查看>>
如何对 GIT 分支进行规划? (转)
查看>>
浅谈简单工作流设计——责任链模式配合策略与命令模式的实现
查看>>
HDOJ(HDU) 1406 完数
查看>>
gradle项目中资源文件的相对路径打包处理技巧
查看>>