iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android 中三种启用线程的方法总结
  • 663
分享到

Android 中三种启用线程的方法总结

方法线程Android 2022-06-06 11:06:42 663人浏览 薄情痞子
摘要

在多线程编程这块,我们经常要使用Handler(处理),Thread(线程)和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢? 首先说明Android的CPU分配

多线程编程这块,我们经常要使用Handler(处理),Thread(线程)和Runnable这三个类,那么他们之间的关系你是否弄清楚了呢?

首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。

而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。

HandlerThread顾名思义就是可以处理消息循环的线程,他是一个拥有Looper的线程,可以处理消息循环。

与其说Handler和一个线程绑定,不如说Handler是和Looper一一对应的。

Handler是沟通Activity 与Thread/runnable的桥梁。而Handler是运行在主UI线程中的,它与子线程可以通过Message对象来传递数据

1、首先第一种启用方法是通过继承Thread类,并改写run方法来实现一个线程


public class MyThread extends Thread { 
  //继承Thread类,并改写其run方法    
  private final static String TAG = "My Thread ===> ";   
  public void run(){ 
    Log.d(TAG, "run"); 
    for(int i = 0; i<100; i++) 
    { 
      Log.e(TAG, Thread.currentThread().getName() + "i = " + i); 
    } 
  } 
} 

启动

new Thread(new MyRunnable()).start();

2、第二种启用方式创建一个Runnable对象


public class MyRunnable implements Runnable{ 
  private final static String TAG = "My Runnable ===> "; 
  @Override 
  public void run() { 
    // TODO Auto-generated method stub 
    Log.d(TAG, "run"); 
    for(int i = 0; i<1000; i++) 
    { 
      Log.e(TAG, Thread.currentThread().getName() + "i = " + i); 
    } 
  } 
} 

启动

new Thread(new MyRunnable()).start(); 

另外一种启用方式


 btn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        new Thread(new Runnable() {
          @Override
          public void run() {
            try {
              ...
            } catch (Exception e) {
              e.printStackTrace();
            }
          }
        }).start();
      }
    });

3、第三种启用方式通过Handler启动线程


public class MainActivity extends Activity {   
  private final static String TAG = "UOfly Android Thread ==>"; 
  private int count = 0; 
  private Handler mHandler = new Handler(); 
  private Runnable mRunnable = new Runnable() { 
    public void run() { 
      Log.e(TAG, Thread.currentThread().getName() + " " + count); 
      count++; 
      setTitle("" + count); 
      // 每3秒执行一次 
      mHandler.postDelayed(mRunnable, 3000); //给自己发送消息,自运行
    } 
  }; 
   
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // 通过Handler启动线程 
    mHandler.post(mRunnable); //发送消息,启动线程运行
  } 
   @Override   
     protected void onDestroy() {    
       //将线程销毁掉    
       mHandler.removeCallbacks(mRunnable);    
       super.onDestroy();    
     }    
} 

以上这篇Android 中三种启用线程的方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

您可能感兴趣的文章:如何正确使用Android线程详解全面总结Android中线程的异步处理方式


--结束END--

本文标题: Android 中三种启用线程的方法总结

本文链接: https://www.lsjlt.com/news/28418.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 实现多线程的三种方法总结
    1._thread.start_new_thread(了解) import threading import time import _thread def job(): ...
    99+
    2024-04-02
  • Android实现按钮点击事件的三种方法总结
    目录一、匿名内部类实现二、接口实现三、布局实现Button是程序用于和用户进行交互的一个重要控件,相信大家对这个控件已经非常熟悉了,我们平时用的最多的控件之一。既然有Button,那...
    99+
    2024-04-02
  • java 多线程的几种实现方法总结
    java 多线程的几种实现方法总结1.多线程有几种实现方法?同步有几种实现方法?多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与noti...
    99+
    2023-05-30
    java 多线程 ava
  • Android Notification的多种用法总结
    Android Notification的多种用法总结我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问...
    99+
    2023-05-31
    android notification roi
  • Android统一依赖管理的三种方式总结
    目录简述传统apply from的方式(也是我以前项目中使用)buildSrc方式什么是buildSrc小结Composing builds什么是Composing builds小结...
    99+
    2024-04-02
  • 总结三种常见php算法的实现方法
    PHP是一种强大的脚本语言,它在Web开发领域中广泛应用。除了在网站开发中使用,PHP还可以用于实现各种算法和数据结构。在本文中,我们将介绍三个常见的算法,包括冒泡排序、快速排序和二分查找,以及在PHP中如何实现它们。一、冒泡排序冒泡排序是...
    99+
    2023-05-14
  • Qt 中开启线程的多种方式小结
    目录简介1. 继承 QThread 重写 run 函数2. 继承 QObject 调用 moveToThread3. 继承 QRunnable 重新 run 函数,结合 QThrea...
    99+
    2024-04-02
  • python三种数据结构及13种创建方法总结
    目录字符串的3种创建方式列表的5种创建方式字典的5种创建方式Python常用的数据结构,有如下几种。但是我们用的最多的,还是字符串、列表、字典这3种。 其实学习任何一门编程语言,最...
    99+
    2024-04-02
  • Android截屏截图的几种方法总结
     Android截屏  Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途一、Activity截屏截Activity界面(包含空白的状态栏) public static B...
    99+
    2023-05-31
    android 截屏 截图
  • Java线程创建的四种方式总结
    多线程的创建,方式一:继承于Thread类 1.创建一个继承于Thread类的子类 2.重写Thread类的run()--->将此线程执行的操作声明在run()中 3.创建Th...
    99+
    2024-04-02
  • Golang实现解析JSON的三种方法总结
    目录背景示例Json例子解释1)反序列化成map2)反序列化成对象3)复杂json的解析总结背景 这是一篇写给0-1年新人的文章,短平快的教会你如何解析json字符串。 示例Json...
    99+
    2024-04-02
  • JAVA实现线程的三种方法
    (1)继承Thread类,重写run函数创建:class xx extends Thread{  public void run(){Thread.sleep(1000) ...
    99+
    2022-11-15
    JAVA 线程
  • Java结束线程的三种方法及该如何选择
    目录1.使用退出标志2.使用interrupt方法3.使用stop方法来结束线程4.结束方法的选择java常用的结束一个运行中的线程的方法有3中:使用退出标志,使用interrupt...
    99+
    2024-04-02
  • Java如何判断线程是否结束的三种方法
    目录方法1方法2方法3方法1 通过Thread类中的isAlive()方法判断线程是否处于活动状态。 线程启动后,只要没有运行完毕,都会返回true。 【注】如果只是要等其他线程运行...
    99+
    2024-04-02
  • Android onCreateOptionsMenu的使用方法总结
    Android onCreateOptionsMenu的使用方法总结任何一款软件都少不了对“菜单”的使用。在Android下,每一个activity都捆绑了一个Menu,要想定义和使用菜单,都必须在Activity下进行操作,复写onCre...
    99+
    2023-05-30
    android oncreateoptionsmenu roi
  • OpenFeign设置header的三种方式总结
    目录设置OpenFeign的FeignClient的Header信息1、在@RequestMapping注解里添加headers属性2、在方法参数前面添加@RequestHeader...
    99+
    2023-05-14
    openfeign header openfeign设置header openfeign使用
  • Android WebView的使用方法总结
     Android WebView的使用方法  Android app打开H5页一般要实现如下需求:打开指定url网页;2、点击链接可以跳转到下一页,并更新标题;3、按back键或左箭头可以返回上一页;4、当webview...
    99+
    2023-05-30
    android webview roi
  • python判断列表为空的三种方法总结
    目录python中判断列表为空方法1:len()方法2:直接使用if判断方法3:使用==进行判断python判断为空的处理总结python中判断列表为空 判断列表为空是一个非常基础的...
    99+
    2023-02-03
    python判断列表为空 python判断列表 python空列表判断
  • SpringMVC实现Controller的三种方式总结
    目录实现Controller的三种方式1.实现Controller接口2.实现HttpRequestHandler接口3.全注解关于SpringMVC的控制器(Controller)...
    99+
    2024-04-02
  • Android退出应用程序方法总结
    在Android中,可以使用以下几种方法退出应用程序:1. 使用finish()方法关闭当前Activity:在需要退出的Activ...
    99+
    2023-09-28
    Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作