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(); //退出計時器
/***************************************************************/
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(); //退出計時器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.