• Android多线程操作,as快捷键笔记


    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 = 8;
      
              BlockingQueue que = new LinkedBlockingDeque();//队列,这里面的任务可以放入int的max个
      
              ArrayBlockingQueue arrque = new ArrayBlockingQueue(2);//只放入两个任务
      //
              ThreadPoolExecutor executor = new ThreadPoolExecutor(2,5,keep_alive,
                      TimeUnit.SECONDS,arrque,new NameTreadFactory(),new MyIgnorePolicy());
      
              for (int i = 0;i < 10;i++){
                  executor.execute(new MyRunable(""+i));
              }
      
      
          }
          static class NameTreadFactory implements ThreadFactory {
      
              private final AtomicInteger mThreadNum = new AtomicInteger(1);
      
              @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(3000); //让任务执行慢点
                  } catch (Exception e) {
                      e.printStackTrace();
                  }
              }
      
              public String getName() {
                  return name;
              }
      
              @Override
              public String toString() {
                  return "My task---[name==="+name+" ]";
              }
          }

       

      
      










  • 相关阅读:
    好玩的原生js的简单拖拽
    原生js的简单倒计时
    五分钟了解node,cnpm和yarn
    计算水仙花数
    首师大附中科创教育平台 我的刷题记录(1)
    [暑假集训--数位dp]hdu3652 B-number
    [暑假集训--数位dp]hdu2089 不要62
    cf711E ZS and The Birthday Paradox
    Spoj-NETADMIN Smart Network Administrator
    cf449C Jzzhu and Apples
  • 原文地址:https://www.cnblogs.com/cnman/p/10627451.html
Copyright © 2020-2023  润新知