如何通过new Thread实现安卓中的异步任务?

2026-05-27 20:251阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计330个文字,预计阅读时间需要2分钟。

如何通过new Thread实现安卓中的异步任务?

在Android中实现异步任务,直接使用`new Thread()`存在一些背景问题和局限性。本文简要介绍了几种Android汇总实现异步任务的方法,并简要比较了它们的优缺点。有朋友问到具体的实现方式,现在开始分篇详细介绍。

安卓中实现异步任务一——直接new Thread

问题背景

上篇文章大致介绍了几种安卓汇总实现异步任务的方法,讲得比较简要,有朋友问到具体的实现方式,现在开始分列几篇文章详细介绍这几种异步的具体实现。持续更新。

如何通过new Thread实现安卓中的异步任务?

实现demo

现在介绍第一种方式,这个是比较常见的,和java中是一样的。 具体代码如下:

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; public class ThreadActivity extends AppCompatActivity { private static final String TAG = "ThreadActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_thread1); Log.d(TAG, "TAG onCreate " + Thread.currentThread().getId() + " " + Thread.currentThread().getName()); runInNewThread(); } private void runInNewThread() { new Thread() { @Override public void run() { try { // 模拟执行耗时任务 Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } Log.d(TAG, "runInNewThread" + Thread.currentThread().getId() + " " + Thread.currentThread().getName()); } }.start(); } }

日志如下: 可以看到主线程(UI线程)和子线程的相关信息。

本文共计330个文字,预计阅读时间需要2分钟。

如何通过new Thread实现安卓中的异步任务?

在Android中实现异步任务,直接使用`new Thread()`存在一些背景问题和局限性。本文简要介绍了几种Android汇总实现异步任务的方法,并简要比较了它们的优缺点。有朋友问到具体的实现方式,现在开始分篇详细介绍。

安卓中实现异步任务一——直接new Thread

问题背景

上篇文章大致介绍了几种安卓汇总实现异步任务的方法,讲得比较简要,有朋友问到具体的实现方式,现在开始分列几篇文章详细介绍这几种异步的具体实现。持续更新。

如何通过new Thread实现安卓中的异步任务?

实现demo

现在介绍第一种方式,这个是比较常见的,和java中是一样的。 具体代码如下:

import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; public class ThreadActivity extends AppCompatActivity { private static final String TAG = "ThreadActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_thread1); Log.d(TAG, "TAG onCreate " + Thread.currentThread().getId() + " " + Thread.currentThread().getName()); runInNewThread(); } private void runInNewThread() { new Thread() { @Override public void run() { try { // 模拟执行耗时任务 Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } Log.d(TAG, "runInNewThread" + Thread.currentThread().getId() + " " + Thread.currentThread().getName()); } }.start(); } }

日志如下: 可以看到主线程(UI线程)和子线程的相关信息。