Android 创建线程执行任务
2015-09-08 15:20
435 查看
一、新建CommonWorkingThread类,如下:
import android.os.Handler;
import android.os.HandlerThread;
import android.util.Log;
public class CommonWorkingThread {
private static HandlerThread thread = null;
private static Handler handler = null;
private CommonWorkingThread() {
}
public static class CommonWorkingThreadHolder {
public static CommonWorkingThread instance = new CommonWorkingThread();
}
public static CommonWorkingThread getInstance() {
initHandler();
return CommonWorkingThreadHolder.instance;
}
public boolean execute(Runnable r) {
if (handler != null) {
Log.i("CommonWorkingThread", ">>> working thread execute ");
return handler.post(r);
}
return false;
}
public boolean execute(Runnable r, long delayMillis) {
if (handler != null) {
Log.i("CommonWorkingThread",
">>> working thread execute delayMillis " + delayMillis);
return handler.postDelayed(r, delayMillis);
}
return false;
}
public Handler getHandler() {
return handler;
}
private static void initHandler() {
if (thread == null || !thread.isAlive() || thread.isInterrupted()
|| thread.getState() == Thread.State.TERMINATED) {
thread = new HandlerThread("tpush.working.thread");
thread.start();
handler = new Handler(thread.getLooper());
Log.i("CommonWorkingThread", ">>> Create new working thread."
+ thread.getId());
}
}
}
二、在需要用到的地方按如下调用方式调用:
CommonWorkingThread.getInstance().execute(new Runnable() {
@Override
public void run() {
//在此执行具体任务
}
}, 100L); // 100L位delay执行的时间
import android.os.Handler;
import android.os.HandlerThread;
import android.util.Log;
public class CommonWorkingThread {
private static HandlerThread thread = null;
private static Handler handler = null;
private CommonWorkingThread() {
}
public static class CommonWorkingThreadHolder {
public static CommonWorkingThread instance = new CommonWorkingThread();
}
public static CommonWorkingThread getInstance() {
initHandler();
return CommonWorkingThreadHolder.instance;
}
public boolean execute(Runnable r) {
if (handler != null) {
Log.i("CommonWorkingThread", ">>> working thread execute ");
return handler.post(r);
}
return false;
}
public boolean execute(Runnable r, long delayMillis) {
if (handler != null) {
Log.i("CommonWorkingThread",
">>> working thread execute delayMillis " + delayMillis);
return handler.postDelayed(r, delayMillis);
}
return false;
}
public Handler getHandler() {
return handler;
}
private static void initHandler() {
if (thread == null || !thread.isAlive() || thread.isInterrupted()
|| thread.getState() == Thread.State.TERMINATED) {
thread = new HandlerThread("tpush.working.thread");
thread.start();
handler = new Handler(thread.getLooper());
Log.i("CommonWorkingThread", ">>> Create new working thread."
+ thread.getId());
}
}
}
二、在需要用到的地方按如下调用方式调用:
CommonWorkingThread.getInstance().execute(new Runnable() {
@Override
public void run() {
//在此执行具体任务
}
}, 100L); // 100L位delay执行的时间
相关文章推荐
- java-模拟tomcat服务器
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件