Android多线程操作,as快捷键笔记
2024-08-21 07:05:09
Android studio 快捷键
cmd+p 快速查看该方法的参数定义
*
* option + shift +上下 快速移动上下行
*
* cmd + e 显示最近操作的文件
*
* cmd + option +左右 回到之前浏览过的地方
* option + shift +点击 多光标操作
* control +g 多重选择
* f3 添加书签
* cmd +f3 查看书签
*
* cmd + y 在当前页面预览代码
* cmd + option + t 对某行代码进行重构,例如增加if 语句
*
* option + enter 快速提示
多线程操作不要显式调用Thread,使用AsyncTask或者ThreadPoolExecutor
//执行task
// new DownLoadTask().execute(); class DownLoadTask extends AsyncTask<Void,Integer,Boolean>{ @Override
protected void onPreExecute() {
super.onPreExecute();
} @Override
protected Boolean doInBackground(Void... voids) {
//后台处理返回处理结果
//更新处理进度
publishProgress(11);
return null;
} @Override
protected void onProgressUpdate(Integer... values) {
//进度处理
} @Override
protected void onPostExecute(Boolean aBoolean) {
//结果处理
}
}private void userThreadPoolExecutor(){
int NUMBER_CORES = Runtime.getRuntime().availableProcessors();
int keep_alive = ; BlockingQueue que = new LinkedBlockingDeque();//队列,这里面的任务可以放入int的max个 ArrayBlockingQueue arrque = new ArrayBlockingQueue();//只放入两个任务
//
ThreadPoolExecutor executor = new ThreadPoolExecutor(,,keep_alive,
TimeUnit.SECONDS,arrque,new NameTreadFactory(),new MyIgnorePolicy()); for (int i = ;i < ;i++){
executor.execute(new MyRunable(""+i));
} }
static class NameTreadFactory implements ThreadFactory { private final AtomicInteger mThreadNum = new AtomicInteger(); @Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r, "my-thread-" + mThreadNum.getAndIncrement());
System.out.println(t.getName() + " has been created");
return t;
}
}
public static class MyIgnorePolicy implements RejectedExecutionHandler { public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
doLog(r, e);
} private void doLog(Runnable r, ThreadPoolExecutor e) {
// 可做日志记录等
Log.d("tag",r.toString() + " rejected");
// System.out.println("completedTaskCount: " + e.getCompletedTaskCount());
}
}
class MyRunable implements Runnable {
private String name; public MyRunable(String name){
this.name = name;
} @Override
public void run() {
try {
System.out.println(this.toString() + " is running!");
Thread.sleep(); //让任务执行慢点
} catch (Exception e) {
e.printStackTrace();
}
} public String getName() {
return name;
} @Override
public String toString() {
return "My task---[name==="+name+" ]";
}
}
最新文章
- ASP.NET Web API 管道模型
- JavaScript从父页面获取子页面的值(子页面又如何访问父页面)
- 使用 screen 管理你的远程会话
- HDU 1264 Counting Squares(线段树求面积的并)
- 上传图片预览 支持IE8+,FF,Chrome ,保留原图片比例
- Map的迭代操作
- Linux怎样修改系统时间
- 浅谈web前端就业的学习路线
- 在 Windows系统中编译node.js 源代码
- ubuntu下无法打开windows下ntfs文件系统的解决方法
- 2017 年不可错过的开发工具 Top 50
- HDU2571 命运 动态规划
- 四色GDOI&;GDOI2015滚粗记
- 安装与配置cacti 0.8.8b
- freemarker.template.TemplateException:Error executing macro:mainSelect
- 20.如何从app业务逻辑提炼api接口
- [Python数据挖掘]第4章、数据预处理
- Shiro学习
- echarts和highcharts比较
- 【转】escape()、encodeURI()、encodeURIComponent()区别详解
热门文章
- top中的wa的理解
- odoo开发笔记 -- 多个子类继承同一个父类方法的执行顺序
- EasyRTMP推送扩展支持HEVC(H265) RTMP推送之Metadata结构填写详解
- 【linux学习笔记六】压缩 解压缩命令
- ajax中参数traditional的作用
- Windows10不能进入睡眠
- objectARX2010及其以上版本使用publish打印(发布)图纸,后台布局打印图纸例子浅析
- 最新 物易云通java校招面经 (含整理过的面试题大全)
- 【原创】C++STL multiset
- linux shell 获取文件夹全文绝对路径