Android中的java层的线程暂停和恢复实现
- /**
- * 基础线程对象.
- *
- * @author jevan
- * @version (1.0 at 2013-6-17)
- * @version (1.1 at 2013-7-2) 增加onDestory接口{@link #onDestory()},增加stop方法{@link #stop() }。
- */
- public
abstract
class BaseThread implements Runnable { - public
static
final
int SUSPEND_TIME_MILLISECONDS = 50; - private String name;
- private Thread mThread;
- private
boolean suspendFlag = false;// 控制线程的执行 - // private int i = 0;
- private String TAG = getName();
- /**
- * 构造函数
- * @param name 线程名称。
- * @param suspend 初始化是否暂停。
- */
- public BaseThread(String name, boolean suspend) {
- suspendFlag = suspend;
- this.name = name;
- mThread = new Thread(this, name);
- System.out.println("new Thread: " + mThread);
- mThread.start();
- }
- public
void run() { - try {
- while (true) {
- // System.out.println(name + ": " + i++);
- synchronized (this) {
- while (suspendFlag) {
- wait();
- }
- }
- Thread.sleep(SUSPEND_TIME_MILLISECONDS);
- process();
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- onDestory();
- }
- Log.i(TAG, name + " exited");
- }
- /**
- * 线程处理接口。
- */
- public
abstract
void process(); - /**
- * 线程暂停
- */
- public
void suspend() { - this.suspendFlag = true;
- }
- /**
- * 唤醒线程
- */
- public
synchronized
void resume() { - this.suspendFlag = false;
- notify();
- }
- /**
- * 返回线程名
- *
- * @return name
- */
- public String getName() {
- return name;
- }
- /**
- * 获取线程对象。
- *
- * @return 线程对象。
- */
- public Thread getT() {
- return mThread;
- }
- /**
- * 停止线程运行。
- */
- public
void stop() { - if (mThread != null){
- mThread.interrupt();
- mThread = null;
- }
- }
- /**
- * 线程处理接口。
- */
- public
void onDestory() - {
- Log.i(TAG, name + " destory!");
- }
- }
Android中的java层的线程暂停和恢复实现的更多相关文章
- Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解
Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- Android中突发情况Activity数据的保存和恢复
Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...
- Android Multimedia框架总结(四)MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程
转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52420803 前言:在上篇中,分析了MediaPl ...
- 在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错
在android中下载文件,写好下载文件的代码后需要配置相应的权限 <uses-permission android:name="android.permission.INTERNET ...
- [转] android 中 任务、进程和线程的区别
PS: handler的目的是在组件进程中开辟一个线程作为消息的poller,收到消息后可以更新Activity中的控件(特殊的view) 任务.进程和线程 关于Android中的组件和应用, ...
- 在Android中使用Java 8的lambda表达式
作为一名Java开发者,或许你时常因为缺乏闭包而产生许多的困扰.幸运的是:Java's 8th version introduced lambda functions给我们带来了好消息;然而,这咩有什 ...
- (转载)Android开发——Android中常见的4种线程池(保证你能看懂并理解)
0.前言 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52415337 使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用 ...
- Android开发——Android中常见的4种线程池(保证你能看懂并理解)
0.前言 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52415337 使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用 ...
随机推荐
- PC端Web项目开发流程
从前一直再做前端,突然想到如果有一天领导让自己独立承担一个web 项目的话是否有足够的能力去接这个任务,要学会自己去搭建一些基础的工具信息.所有的这一切在心里都要有个大致的流程,不然真正做的时候难免会 ...
- 脚本之家 前端jQuery js 学习 网站
http://www.jb51.net/books/ http:// www.3wschool.com/
- 2017-3-2 C#链接数据库实现登陆
只是链接一个数据库就有好多的知识:) 实际操作下来,主要是两种登陆方式: 1.Windows的身份验证: 2.Sql Sever的身份验证: 两种的方法不同,但是主要是通过复制创建数据库的字符串来链接 ...
- 考试模块 - ERP数据流
快速链接:人力资源知识体系索引 本主题主要列出考试中涉及到的所有表. 步骤 操作 相关表 说明 1 考试辅助资料 基础资料,见附表1 2 题库(109130) HXExmGp 3 试题 HXE ...
- ajax三级联动下拉菜单
ajax写三级联动,先写一个文件类吧,以后用的时候直接调用即可: 来找一张表: 实现: 中国地域的三级联动:省.市.区: 图: 说一下思路: (1)当用户选择省份的时候触发事件,把当前的省份的id通过 ...
- 3399: [Usaco2009 Mar]Sand Castle城堡
3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 37 Solved: 32[Sub ...
- 1599: [Usaco2008 Oct]笨重的石子
1599: [Usaco2008 Oct]笨重的石子 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 795 Solved: 543[Submit][ ...
- vue学习笔记(一)关于事件冒泡和键盘事件 以及与Angular的区别
一.事件冒泡 方法一.使用event.cancelBubble = true来组织冒泡 <div @click="show2()"> <input type=&q ...
- System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt".
昨天遇到一个比较奇怪的问题,运行VS2010调试程序的时候,总是会报一个错,然后程序就挂掉了:无可用源….,弹出一个窗口提示:System.AccessViolationException: Atte ...
- 《Machine Learning》系列学习笔记之第一周
<Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, in ...