Android 程序中使用定时器 Timer

#移动开发 #Android

一、重点

1. 如何使用 handler 和 message

2. 如何延时调用

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

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

](http://hi.baidu.com/iammuyue/blog/item/20ef6b10bbc92377cb80c467.html)

二、举例

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

2. 步骤:

  1. 建立 project
  1. 在 eclipse 中点击菜单 File->New->Project ……

  2. 选择 Android Project 按 Next

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

  1. 修改 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;
}
} **

  1. 运行
  1. 在 eclipse 中点击菜单 Run- >Run Configurations ……

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

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

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