我在 android 中显示了一个基本问题。我无法理解调用某些显示函数时线程的行为。具体来说,假设我创建了一个线程,用于在 android 手机屏幕上显示缩略图。
1-我的问题是,即使在调用显示函数后(即图像显示开始后),该线程是否仍会保持活动状态,还是会进入某种空闲或睡眠模式?
2-显示功能的工作原理
我在 android 中显示了一个基本问题。我无法理解调用某些显示函数时线程的行为。具体来说,假设我创建了一个线程,用于在 android 手机屏幕上显示缩略图。
1-我的问题是,即使在调用显示函数后(即图像显示开始后),该线程是否仍会保持活动状态,还是会进入某种空闲或睡眠模式?
2-显示功能的工作原理
在 Android 应用程序中,主线程或称为 ui-thread 负责绘制/更新 UI。您不能在工作线程中执行 ui 操作。
您可以通过多种方式从工作线程发布 ui 更新。如果您在工作线程或异步任务中有活动实例,您可以发布 activity.runOnUiThread(Runnable action),它将在 ui 线程上运行 Runnable。
您不能直接从任何工作线程更新 UI。您需要在 UI 线程上执行此操作。为此,android 为我们提供了 Handler 和 AsyncTask,它们接受来自工作线程的值并在主线程中更新 UI。对 UI 的任何更新只能从主线程(即您的活动开始时创建的线程)完成。
因此,当您使用处理程序或 AsyncTask 从工作线程更新 UI 时,工作线程会继续运行(如果需要完成更多工作),除非您将其销毁。UI 线程(主线程)也同时运行。因此,主线程已准备好处理在主线程上发生的任何 UI 事件(例如点击事件)。
这就是线程的基本工作方式。你只需要知道,在 android 中,只要你想更新 UI,你就需要将控制权交给主线程。