`
亚当爱上java
  • 浏览: 706099 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android UI线程向子线程发送Message

阅读更多
在android中一般是子线程向主线程发送消息,那主线程能否向子线程发送消息呢?答案是肯定的。
请看android文档中Looper类的一段文档:

Class used to run a message loop for a thread. Threads by default do not have a message loop associated with them; to create one, call prepare() in the thread that is to run the loop, and then loop() to have it process messages until the loop is stopped.

Most interaction with a message loop is through the Handler class.

This is a typical example of the implementation of a Looper thread, using the separation of prepare() and loop() to create an initial Handler to communicate with the Looper.

  class LooperThread extends Thread {
      public Handler mHandler;
      
      public void run() {
          Looper.prepare();
          
          mHandler = new Handler() {
              public void handleMessage(Message msg) {
                  // process incoming messages here
              }
          };
          
          Looper.loop();
      }
  }


主线程通过子线程中定义的Handler 向子线程发送message。先写到这里吧,等周末有空再进行详细说明。
1
0
分享到:
评论

相关推荐

    安卓UI线程和子线程通讯更新UI实例

    子线程通过发送Message或者Runnable对象到Handler,Handler会在UI线程中接收到这些消息并执行相应的代码,从而更新UI。首先在UI线程中创建Handler: ```java Handler handler = new Handler(Looper.getMainLooper...

    Android环境下主UI线程与子线程通信机制研究.pdf

    在Android中,主线程(UI线程)负责处理所有的用户界面交互和响应。对于耗时的操作,如网络访问、数据库查询或大量计算等,如果这些操作在主线程中执行,会阻塞用户界面,导致应用无响应。因此,通常的做法是将这些...

    android主线程、子线程及线程间通信方式测试app

    本文将深入探讨Android主线程(也称为UI线程)、子线程以及它们之间的通信方式,结合"android主线程、子线程及线程间通信方式测试app"的描述,我们将详细分析相关知识点。 1. **Android主线程**:主线程是应用程序...

    Android两个子线程之间的通信

    主线程,也称为UI线程,负责处理用户界面的更新和事件响应。为了不阻塞主线程,我们通常会在子线程中执行耗时任务。然而,当这些子线程需要与主线程交互,例如更新UI或共享数据时,就需要进行线程间通信。 Android...

    android 主线程给子线程发送消息

    在Android应用开发中,主线程(也称为UI线程)主要负责处理用户界面的更新和交互,而子线程则通常用于执行耗时的操作,如网络请求、数据库操作等,以避免阻塞主线程,保证用户界面的流畅性。本示例"android 主线程给...

    安卓UI线程机制 ,在子线程中访问UI

    下面将详细阐述Android UI线程的工作原理,以及如何在子线程中安全地访问UI。 一、Android UI线程 1. 主线程:每个Android应用都有一个主线程,它负责初始化Activity、BroadcastReceiver、Service等组件,并处理...

    子线程接收主线程发送的消息

    在Android开发中,多线程通信是一个至关重要的概念,尤其是主线程(UI线程)与子线程之间的交互。标题“子线程接收主线程发送的消息”涉及到的是Android中的Handler机制,这是一种处理线程间通信的方式。我们首先来...

    子线程中更新UI线程的三种方法

    总结来说,子线程中更新UI线程主要有Handler+Looper、Runnable+runOnUiThread以及AsyncTask这三种方式。Handler提供了更灵活的消息机制,适合复杂的同步需求;Runnable+runOnUiThread则更为简洁,适合快速实现简单的...

    Android 线程+View的使用

    主线程(也叫UI线程)负责处理用户交互和更新UI,而子线程则用于执行耗时任务。Post方式直接在View上操作,Handler方式通过消息队列进行间接通信。在实际开发中,开发者需要根据具体需求选择合适的方法来实现线程与...

    子线程更新主线程数据

    在多线程编程中,"子线程更新主线程数据"是一个常见的需求,尤其是在UI界面交互和后台处理相结合的应用中。主线程通常负责用户界面的显示与交互,而子线程则用于执行耗时的任务,避免阻塞主线程,提供良好的用户体验...

    如何从子线程更新主线程数据

    - **消息队列(Message Queue)**:子线程可以通过PostMessage或SendMessage函数向主线程的消息队列发送消息,主线程的窗口消息循环会处理这些消息。 - **共享内存(Shared Memory)**:创建一段共享内存,子线程...

    android使用handler ui线程和子线程通讯更新ui示例

    `Handler`是Android提供的一种机制,用于在不同的线程之间传递消息和协调通信,特别是用于子线程与UI线程之间的通信,以便安全地更新UI。 首先,我们来看一下`Handler`的基本概念。`Handler`是Android中的一个类,...

    C#WinForm跨线程更新UI的四种方法

    在WinForms应用中,Application.Current.SynchronizationContext可用于获取UI线程的上下文对象,然后使用Post或Send方法发送消息。 示例代码: ```csharp private SynchronizationContext uiContext; private...

    子线程中更新UI的三种方法和获取message的两种方法总结

    在Android开发中,由于UI操作必须在主线程中执行,因此在子线程中处理耗时任务后更新用户界面(UI)成为了一项常见的需求。本文将深入探讨在子线程中更新UI的三种有效方法,并同时讲解如何在Android中获取和处理...

    Android中子线程和UI线程通信详解

    总之,Android中子线程与UI线程通信的核心是Handler机制,它通过Message对象和Looper/MessageQueue协同工作,确保了非阻塞的UI更新和子线程计算。理解和熟练掌握这一机制对于开发高效且用户体验良好的Android应用至...

    Android中UI线程与后台线程交互的探讨.pdf

    在Android应用开发中,UI线程(也称为主线程)负责处理用户界面的交互,而后台线程则用于执行耗时操作,如网络请求、数据库操作等,以避免阻塞UI,保证用户界面的流畅性。当后台线程完成耗时操作后,通常需要将结果...

    在MFC 子线程中使用UI(控件)退出时死锁或者超时处理参考

    - 避免阻塞UI线程:长时间任务应尽可能在子线程中完成,只在必要的时候通知主线程。 - 使用异步消息或事件通知:避免直接调用跨线程的成员函数,使用PostMessage或CWinThread::PostThreadMessage。 - 使用...

    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面

    - **Handler**:用于发送消息和处理消息的对象,可以在子线程中向主线程发送消息,从而更新UI。 ### 2. 实现步骤 #### 步骤一:定义Handler ```java private Handler mHandler = new Handler() { public void ...

    子线程控制ProgressDialog的可见性

    然而,由于Android的主线程(UI线程)与子线程之间的交互限制,直接在子线程中控制ProgressDialog的显示和消失可能会遇到问题。这篇博客将探讨如何在子线程中正确地控制ProgressDialog的可见性,同时遵循Android的UI...

Global site tag (gtag.js) - Google Analytics