Android专题4——MainThread向WorkerThread通信

WorderThread这里是接受数据

所以创建Handler对象以及对数据的处理方法要放在这里

首先创建WorkerThread线程并在其中创建Handler对象以及重写handlerMessage方法

当点击Button,向WorkerThread发送数据

package com.njulya.testhandler;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
    private Handler handler;
    private TextView text ;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        text = (TextView)findViewById(R.id.textId);
        button = (Button)findViewById(R.id.buttonId);

        Thread td = new Thread(){
            @Override
            public void run(){
                Looper.prepare();
                handler = new Handler(){
                    @Override
                    public void handleMessage(Message msg){
                        String str = (String)msg.obj;
                        System.out.println(str);
                    }
                };
                Looper.loop();
            }
        };
        td.start();

        button.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View arg0) {
                Message msg = handler.obtainMessage();
                msg.obj = "MainThread发送的数据";
                handler.sendMessage(msg);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

时间: 2024-08-14 16:34:54

Android专题4——MainThread向WorkerThread通信的相关文章

Android专题3——MainThread向WorkerThread通信

Android一般WorkerThread不能改变UI进程(MainThread) 所以需要Handler 点击数据按钮,启动一个线程,模拟从网上获得数据 点击以后,过一秒钟后改变TextView内容 首先给Button绑定一个监听器,让其创建一个线程 这个线程模拟从网络中获得数据 Handler定义如何处理 package com.njulya.testhandler; import android.app.Activity; import android.os.Bundle; import

Android:(本地、可通信的、前台、远程)Service使用全面介绍

前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍Service最基础的知识:Service的生命周期 如果你对Service还未了解,建议先阅读我写的文章: Android四大组件:Service史上最全面解析 目录 1. Service分类 1.1 Service的类型 1.2 特点 2.具体使用解析 2.1 本地Service 这是最普通.最常用的后台服务Service. 2.1.1 使用步骤 步骤1:新建子类继承Service类 需重写父类的onCreate()

android使用socket进行本地PC通信

一.编写思路 手机端为客户端,PC为服务端,手机访问PC通信,需建立一个虚拟的通信链路,客户端通过socket发送请求到服务端,服务端通过serversocket监听来自客户端的socket请求,并生成一个socket.这样就建立了一条虚拟通信网络,然后再通过相关方法进行通信.项目需在服务端建立一个java程序,客户端建立一个android程序. 二.代码编写 (一) PC端的代码编写--java程序 (1)相关方法 Socket accept() :如果接收到一个来自客户端的socket的连接

Android——Fragment和Activity之间的通信+Frangment生命周期

Android--Fragment和Activity之间的通信+Frangment生命周期 Fr'agment和Activity之间的通信 1.在Fragment中声明一个接口. 2.在Activity中实现在Fargment中声明的接口. 3.在Fragment中声明一个接口对象. 4.在Frangment的生命周期Onattach方法中判断当前Activity是否实现了此Fragment中声明的接口.如果已实现,就把当前Activity转换成接口对象. 5.调用Activity中实现的方法=

Android操作HTTP实现与服务器通信

本示例以Servlet为例,演示Android与Servlet的通信. 众所周知,Android与服务器通信通常采用HTTP通信方式和Socket通信方式,而HTTP通信方式又分get和post两种方式.至于Socket通信会在以后的博文中介绍. HTTP协议简介: HTTP (Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种协议. HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响

Android 主线程和子线程通信问题

Android 现在不支持View在子线程中创建及调用其方法.如果要实现子线程内容更新之后,将结果及时反馈到主线程中,该如何出来呢? 可以在主线程中创建Handler来实现. 这样子线程的结果,可以通过发消息的形式,通知主线程,然后主线程中去及时更新View控件. Handler的使用方式: mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg);

Android客户端与本地服务器Socket通信

Android客户端与本地服务器Socket通信 Socket服务器运行结果图?? 一.客户端和服务器端的选择: 客户端是我们手机端,关于服务器端,只要安装了JDK,自然就拥有通讯的功能,我们只需要在Eclipse或者MyEclipse中写好文章中服务器端的代码,运行起来即可,用accept()方法启动服务器端,等待客户端的连接,在未连接的情况下,服务器端处于堵塞的状态. 二.客户端注意事项 andriod客户端添加网络访问权限 <uses-permission android:name="

Android的Fragment中的互相通信-桥梁activity

Android的Fragment中的互相通信-桥梁activity 效果图如下: 项目结构图如下: Fragment1: package com.demo.fragmenttongxin; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import an

Android专题8——本地服务和远程服务通信

关于远程服务 远程服务指的是服务和访问者不在同一个应用程序中,即不在同一个进程中. 访问远程服务类似进程间通信. 访问者和远程服务需要遵守能够被操作系统理解的协议,AIDL. 1. 在服务端和客户端配置AIDL aidl文件最好都放在aidl目录下,aidl文件用于接口描述 会自动生成一个同名的JAVA文件 在自动生成的JAVA文件中,系统会自动定义一个Stub类,继承Binder类,实现aidl文件中描述的接口 2. 编写service业务代码 在清单文件中注册 实现自定义的IBinder <