一、  重点

1.          如何使用handlermessage

2.          如何延时调用

     1) 使用延迟发消息的方式

     2) 也可以使用android.util.Timer与handler相结合的方式
   见 http://hi.baidu.com/iammuyue/blog/item/20ef6b10bbc92377cb80c467.html

二、  举例

1.          功能:实现一个应用界面,在用户长按触模屏两秒后,打出Log信息

2.          步骤:

1)         建立project

a)          eclipse中点击菜单File->New->Project……

b)         选择Android ProjectNext

c)          填写project的各项内容如下
Project name: test_xy //
目录名, 它位于你设定的workspace之下
Package name: com.android.test //
打包名称
Activity name: .TestXy //
类名(生成文件TestXy.java)
Application name: test_xy //
可执行程序名

然后点Finish按钮

2)         修改TestXy.java代码如下
package com.android.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;

public class TextXy extends Activity {
         /** Called when the activity is first created. */
         static final int MESSAGE_LONG_PRESS = 1;        
// 定义长按事件ID
         static final int LONG_PRESS_TIMEOUT = 2000;           
//
定义长按为2
         final Handler mHandler = new LongPressHandler();        
// 定义handler

         class LongPressHandler extends Handler {     
// handler
类的实现
                   public void handleMessage(Message msg) {              
// 事件处理函数
                            switch (msg.what) {
                            case MESSAGE_LONG_PRESS:    
// 选择事件ID
                                     Log.d("TEST_XY", "now long press!");
                                     break;
                            }
                   }
         }

         @Override
         public void onCreate(Bundle savedInstanceState) {
                   super.onCreate(savedInstanceState);
                   setContentView(R.layout.main);
         }

         public boolean onTouchEvent(MotionEvent ev) {                 
//
处理触屏事件
                   int action = ev.getAction();       
// 得到触屏动作
                   if (action == MotionEvent.ACTION_DOWN) { 
// 手指按下
                            mHandler.sendMessageDelayed(mHandler
                                               .obtainMessage(MESSAGE_LONG_PRESS),
                                               ONG_PRESS_TIMEOUT);     
// 延时2秒后发送事件
                   } else if (action == MotionEvent.ACTION_UP) {       
// 手指抬起
                            mHandler.removeMessages(MESSAGE_LONG_PRESS);
                           
// 取消延时事件
                   }
                   return false;
         }
}

3)         运行

a)          eclipse中点击菜单Run->Run Configurations……

b)         双击左边的Android Application,产生了一个New Configuration,点开它填写内容如下:
Name: yan_config //
随便起一个
Project: test_xy //
刚才起的project, 即目录名

c)          点击Apply,然后点Run,多等一会儿就出来了

d)         此时点击右上的DDMS,可看到Log信息,在长按屏幕两秒后,可看到刚才加入的Log信息

 

posted on 2009-11-09 18:24  xieyan0811  阅读(28)  评论(0编辑  收藏  举报