Android的Handler用法(定时)
马达每隔1S振动一次,共5次为例:
/***************************************************************/
private Vibrator mVibrator = null;
private Handler mHandler = new Handler();
private Runnable callback() {
return new Runnable() {
public void run() {
System.out.println("callback");
Log.d("ma da","callback");
mVibrator = new Vibrator();
mVibrator.vibrate(1000);
}
};
}
public void motor()
{
mHandler.postDelayed(callback(), 0);
mHandler.postDelayed(callback(), 2000);
mHandler.postDelayed(callback(), 4000);
mHandler.postDelayed(callback(), 6000);
mHandler.postDelayed(callback(), 8000);
}
/***************************************************************/
用handleMessage方法:
/**************************************
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case KILLER:
if (mKillerCallback != null)
{
mKillerCallback.onKilled();
}
break;
case PLAY:
play((Context) msg.obj, msg.arg1);
break;
}
}
};
private void disableKiller() {
mHandler.removeMessages(KILLER);
}
public void postPlay(final Context context, final int alarmId) {
mHandler.sendMessage(mHandler.obtainMessage(PLAY, alarmId, 0, context));
//mHandler.sendMessageDelayed(msg, delayMillis)
}
private void enableKiller() {
mHandler.sendMessageDelayed(mHandler.obtainMessage(KILLER),
1000 * ALARM_TIMEOUT_SECONDS);
}
/**************
private Handler handler = new Handler(){
private static final int Vibrator_CALLBACK = 1;
public void handleMessage(Message msg) {
switch (msg.what) {
case Vibrator_CALLBACK:
Vibrator mVibrator = new Vibrator();
mVibrator.vibrate(1000);
break;
}
super.handleMessage(msg);
}
};
TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = Vibrator_CALLBACK;
handler.sendMessage(message);
}
};
timer = new Timer(true);
timer.schedule(task,1000, 1000); //延时1000ms后执行,1000ms执行一次
timer.cancel(); //退出计时器
更多相关文章
- Android(安卓)的ANR 问题解决
- android recovery升级原理及update.zip升级过程分析
- 看完这篇,再也不怕被问到AsyncTask的原理
- Android(安卓)7.1使用以太网口共享本机4G网络给其他设备
- android后台执行定时任务(保活)&&使用AlarmManager的各种坑
- 解析ANDROID ps命令执行后各项参数的含义
- Android动画效果 translate、scale、alpha、rotate
- 申请Android(安卓)google map的apiKey
- Android的电话功能介绍