Android中线程的使用

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/47153137

Android中线程的使用很重要,有时候线程使用不好直接导致线程卡死,软件崩溃。下面分享一下我再开发时对线程的理解,如果有错误还希望大家多多指正。当一个Activity被创建之后,一个线程就算开启了,也就是主线程或者UI线程,主线程中只负责更新界面,而子线程中才会去执行一些复杂的业务。 在Android中线程的使用我用的最多的是这三种:Thread、Runnable、Handler 1.Thread 通过集成Thread用run方法来实现线程

  1. public class MyThread extends Thread { 
  2.     private final static String TAG = "My Thread ===> ";  
  3.     public void run(){  
  4.         Log.d(TAG, "run");  
  5.         for(int i = 0; i<100; i++)  
  6.         {  
  7.             Log.e(TAG, Thread.currentThread().getName() + "i =  " + i);  
  8.         }  
  9.     }  
  10. }

复制代码

用start()方法开启线程 2.Runnable

  1. public class MyRunnable implements Runnable{  
  2.     private final static String TAG = "My Runnable ===> ";  
  3.     @Override  
  4.     public void run() {  
  5.         // TODO Auto-generated method stub  
  6.         Log.d(TAG, "run");  
  7.         for(int i = 0; i<1000; i++)  
  8.         {  
  9.             Log.e(TAG, Thread.currentThread().getName() + "i =  " + i);  
  10.         }  
  11.     }  
  12. }

复制代码

3.Handler

  1. public class MainActivity extends Activity {  
  2.     private final static String TAG = "UOfly Android Thread ==>";  
  3.     private int count = 0;  
  4.     private Handler mHandler = new Handler();  
  5.     private Runnable mRunnable = new Runnable() {  
  6.         public void run() {  
  7.             Log.e(TAG, Thread.currentThread().getName() + " " + count);  
  8.             count++;  
  9.             setTitle("" + count);  
  10.             // 每3秒执行一次  
  11.             mHandler.postDelayed(mRunnable, 3000);  //给自己发送消息,自运行
  12.         }  
  13.     };  
  14.     /** Called when the activity is first created. */  
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         setContentView(R.layout.main);  
  19.         // 通过Handler启动线程  
  20.         mHandler.post(mRunnable);  //发送消息,启动线程运行
  21.     }  
  22.       @Override      
  23.          protected void onDestroy() {       
  24.              //将线程销毁掉       
  25.              mHandler.removeCallbacks(mRunnable);       
  26.              super.onDestroy();       
  27.          }       
  28. }

复制代码

这三种线程通常使用的比较多

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Android 事件处理探险

Android提供了两套事件处理机制:基于监听的事件处理;基于回调的事件处理 1.基于监听的事件处理 Android的事件处理是一种委派式事件处理方式(事件源将...

19870
来自专栏懒人开发

BottomNavigationView简单使用

之前见过类似这个库, 是带ripple效果的 不记得具体地址了,和这个类似 https://github.com/Ashok-Varma/BottomNav...

10530
来自专栏Android随笔

一个基础的Android项目

AndroidBasicProject是一个简易的Android基础项目,方便您快速进行开发。 包含以下内容:

9420
来自专栏Android干货园

Base封装(一)--我的最简MVP架构

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/73...

15910
来自专栏分享达人秀

Fragment使用起来非常简单

Fragment创建完成后并不能单独使用,还需要将Fragment加载到Activity中,在Activity中添加Fragment的方式有两种:静态加...

35640
来自专栏Android干货

Android项目实战(三十四):蓝牙4.0 BLE 多设备连接

1.1K60
来自专栏Android开发指南

Android MVP理解

36760
来自专栏Android中高级开发

Android开发之漫漫长途 番外篇——内存泄漏分析与解决

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索...

8820
来自专栏青玉伏案

Android开发之Activity的生命周期以及加载模式

本篇博客就来好好的搞一下Activity的生命周期,如果搞过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类...

21570
来自专栏双十二技术哥

Android AsyncLayoutInflater 限制及改进

上一篇文章中我们介绍了 AsyncLayoutInflater 的用法及源码实现,那么本文来分析下 AsyncLayoutInflater 使用的注意事项及改进...

32920

扫码关注云+社区

领取腾讯云代金券