最近发现Message,发送消息可以传递参数,这个思路很好,所以写了一个例子,点击屏幕,给Activity发送一个消息,传递两个参数,并把这个activity销毁掉!

程序打开界面:

点击屏幕,销毁activity弹出Toast:

MainActivity

    package com.cn.Android;  

    import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast; public class MainActivity extends Activity { final static int CANSHU = ; public Handler mHandler=new Handler(){
public void handleMessage(Message msg) {
switch(msg.what){
case CANSHU : String str1 = msg.getData().getString("text1");//接受msg传递过来的参数
String str2 = msg.getData().getString("text2");//接受msg传递过来的参数
initFinishMainActivity(str1, str2);
break;
    default: break;
}
}
}; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
InitMainActivity();
} public void InitMainActivity()
{
setContentView(new MainActivityView(this,this));
} public void initFinishMainActivity(String str1, String str2)
{
Toast.makeText(MainActivity.this, str1+str2, Toast.LENGTH_LONG).show();
finish();
}
}

MainActivityView

    package com.cn.android;  

    import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Message;
import android.view.MotionEvent;
import android.view.View; public class MainActivityView extends View{ private MainActivity activity;
private Context context;
private Bitmap m_Bitmap; public MainActivityView(Context context, MainActivity activity) {
super(context);
this.activity = activity;
this.context = context;
initBitmap();
} public void initBitmap()
{
m_Bitmap = BitmapFactory.decodeResource(this.getResources(),R.drawable.bg);
} @Override
public void onDraw(Canvas canvas) {
canvas.drawBitmap(m_Bitmap, , , null); } @Override
public boolean onTouchEvent(MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
Rect rect;
rect = new Rect(,,,); if(rect.contains(x,y))
{
Message msg = new Message();
msg.what = MainActivity.CANSHU;
Bundle bundle = new Bundle();
bundle.putString("text1","大明的消息传递参数的例子!"); //往Bundle中存放数据
bundle.putString("text2","Time:2011-09-05"); //往Bundle中put数据
msg.setData(bundle);//mes利用Bundle传递数据
activity.mHandler.sendMessage(msg);//用activity中的handler发送消息
} return super.onTouchEvent(event);
} }

Android Handler之Message传递参数的更多相关文章

  1. 转载《Android Handler、Message》

    之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年 ...

  2. Android Handler、Message完全解析,带你从源码的角度彻底理解

    之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年 ...

  3. android handler ,message消息发送方式

    1.Message msg =  Message.obtain(mainHandler) msg.obj=obj;//添加你需要附加上去的内容 msg.what = what;//what消息处理的类 ...

  4. Android Handler、Message、MessageQueue和Looper官方说明

    Handler官方说明 官方API文档:https://developer.android.google.cn/reference/android/os/Handler Handler允许您发送和处理 ...

  5. [原创]Android Handler使用Message的一个注意事项

    最近发现了一个莫名其妙的问题,在使用Handler.post(Runnable)这个接口时,Runnable有时候没有运行,非常奇怪,后来发现是因为调用Handler.removeMessage()时 ...

  6. Android Handler传递参数动态更新UI界面demo

    package com.example.demo_test; import android.app.Activity; import android.os.Bundle; import android ...

  7. Android之消息机制Handler,Looper,Message解析

    PS:由于感冒原因,本篇写的有点没有主干,大家凑合看吧.. 学习内容: 1.MessageQueue,Looper,MessageQueue的作用. 2.子线程向主线程中发送消息 3.主线程向子线程中 ...

  8. Android Handler机制(一)---Message源码分析

    Message: 定义: public final class Message implements Parcelable Message类是个final类,就是说不能被继承,同时Message类实现 ...

  9. Android 消息机制 (Handler、Message、Looper)

    综合:http://blog.csdn.net/dadoneo/article/details/7667726 与 http://android.tgbus.com/Android/androidne ...

随机推荐

  1. TCP连接,传输数据时的粘包问题讨论

    第一个需要讨论的大概就是粘包问题了.因为这个是TCP的个性问题,UDP通信时不存在这个问题的.首先看一下什么叫粘包: 客户端采取与服务器的长连接方式建立通信(Open-Write/Read-Write ...

  2. Golang学习笔记

    一.基础 1. Hello World程序 demo: package main import "fmt" // 注释 //注释 func main() { fmt.Printf( ...

  3. Ubuntu下编程环境GNU安装

    ubuntu下C编程   环境搭建 其实,linux下写C也是很容易的.IDE的话用 eclipse 集成 CDT 模块就行了.当然这属于重量级的了,就如同VC++之于windows一样.那有没有像T ...

  4. oracle中的记录类型

    单词RECORD有“记录”的意思,因此RECORD也称为“记录类型”,使用该类型的变量可以存储由多个列值组成的一行数据. 在声明记录类型变量之前,首先需要定义记录类型,然后才可以声明记录类型的变量. ...

  5. ubuntu 下dbus的环境搭建和使用

    从https://launchpad.net/ubuntu/+source/dbus/1.10.6-1ubuntu2下载需要的dbus包,然后解压,./configure make && ...

  6. .NET中 MEF应用于IOC

    IOC解释 IOC,控制反转的意思.所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B.所谓反转,你必须理解如果不反转,会怎么着,因为A必须要有B,才可 ...

  7. entityframwork

    entityframwork映射部分: public class NorthwindContext : DbContext { public DbSet<CATEGORIES> Categ ...

  8. Project Settings -> Editor 设置详解

    Default Behavior Mode (默认行为模式) 定义项目在导入Assets时的默认导入设置,当设置为3D模式时,Unity假设将导入的文件创建为纹理类型(如:PNG文件):当设置为2D时 ...

  9. netbeans设置字体

    选择 monospaced 字体 摘抄自:http://blog.sina.com.cn/s/blog_4b6047bc01000boz.html 今天看该文档时,突然意识到通过修改JRE的字体配置文 ...

  10. MVC3中在同一解决方案的不同项目中实现Area功能

    1.背景      微软在MVC中引入了Area概念,用于复杂项目的分工开发.如一个MVC项目中Controller过多时,就会导致项目中包含大量的Controller+View+Model,无论是查 ...