android - 从服务访问 UI 线程处理程序

标签 android multithreading user-interface service handler

我正在 Android 上尝试一些新的东西,我需要访问 UI 线程的处理程序。

我知道以下几点:

  1. UI 线程有自己的处理程序 和弯针
  2. 任何消息都会被放入 进入 UI 的消息队列 线程
  3. looper 接手事件 并将其传递给处理程序
  4. 处理程序处理消息并 将特定事件发送到 UI

我希望我的服务必须获取 UI 线程处理程序并将消息放入此处理程序。 这样这个消息就会被处理并发送到 UI。 这里的服务将是一个正常的服务,将由某个应用程序启动。

我想知道这是否可能。 如果是这样,请建议一些代码 fragment ,以便我可以尝试。

问候 吉里什

最佳答案

这段代码构造了一个与主(UI)线程关联的处理程序:

Handler handler = new Handler(Looper.getMainLooper());

然后您可以像这样在主 (UI) 线程中发布要执行的内容:

handler.post(runnable_to_call_from_main_thread);

如果处理程序本身是从主 (UI) 线程创建的,则为简洁起见,可以省略该参数:

Handler handler = new Handler();

Android Dev Guide关于进程和线程有更多信息。

关于android - 从服务访问 UI 线程处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369287/

相关文章:

android - 如何在不使用任何外部 API 的情况下在 Android 上绘制图形?

java - 制作静态可重入锁

html - html中尖括号百分比的目的是什么

java - 如何在窗口内创建 LibGDX 文本输入? (没有弹出窗口)

android - Fancybox:无法在 Android 手机上滚动

android - Activity 不会在 android 中更改的选项卡上重新启动

python - 我疯了还是真的这么快? (多线程)

python - 如何将滚动条应用到 Canvas 中的框架

java - 如何解决 "Duplicate files copied in APK META-INF/*"

c++ - VC++ 2010 : Weird Critical Section error