Timer.cancel()无效。Android长按按钮一定时间执行某个操作。
来源:互联网 发布:fq软件是什么 编辑:程序博客网 时间:2024/05/29 09:40
在timer 中 timerTask执行过程中cancel是无效的。
查看源码:
/** * Cancels the {@code TimerTask} and removes it from the {@code Timer}'s queue. Generally, it * returns {@code false} if the call did not prevent a {@code TimerTask} from running at * least once. Subsequent calls have no effect. * * @return {@code true} if the call prevented a scheduled execution * from taking place, {@code false} otherwise. */public boolean cancel() { synchronized (lock) { boolean willRun = !cancelled && when > 0; cancelled = true; return willRun; }}要想停止任务可以使timerTask 取消
eg:
llBlank.setOnTouchListener(new View.OnTouchListener() { private TimerTask task; private Timer mTimer; @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mTimer = new Timer(); task = new TimerTask() { @Override public void run() { Message message = new Message(); Vibrator vib = (Vibrator) getApplicationContext().getSystemService(Service.VIBRATOR_SERVICE); long[] pattern = {0, 80}; if (rlAdvance.getVisibility() == View.GONE) { /**震动服务*/ vib.vibrate(pattern, 1); message.what = showAdvance; handler1.sendMessage(message); } } }; mTimer.schedule(task, 2000); break; case MotionEvent.ACTION_UP: mTimer.cancel(); task.cancel(); } return false; } } );}
0 0
- Timer.cancel()无效。Android长按按钮一定时间执行某个操作。
- 一定时间间隔执行某个方法
- [self performselector: withObject: afterDelay:];一定时间后执行某个方法
- Timer.cancel()
- larmManager 在指定时间执行某个操作
- Swift - 时间控制器NSTimer(每隔一定时间执行某个函数)
- android中上下文菜单的创建-----比如长按某个按钮删除数据
- android 定时执行某个操作的方法
- 解决android 长按语音操作 弹出语音层 点击其他的按钮会影响语音层的时间
- Timer的cancel问题
- java的Timer,定时执行某个任务
- java的Timer,定时执行某个任务
- 解决Android中CountDownTimer倒计时cancel方法无效的问题
- Android自定义按钮实现长按功能
- Android自定义按钮实现长按功能
- Spring之任务调度(类似javascript的timeout方法,每隔一定时间执行操作)
- 自定义控件的相关操作,长按按钮操作
- Timer的缺陷-不按定时时间执行【已入坑】
- 对 Linux 新手非常有用的 20 个命令
- Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用
- Java后端WebSocket的Tomcat实现
- 半平面交
- Linux 内核引导选项简介
- Timer.cancel()无效。Android长按按钮一定时间执行某个操作。
- c#调用C++的dll的例程
- 几个html代码demo
- 【git使用】Permission denied (publickey). fatal: Could not read from remote respository.解决办法
- SQL 关于apply的两种形式cross apply 和 outer apply
- 关于Java的反射机制,你需要理解这些...
- React-router@4.0版本简易使用教程
- 递归实现单链表的查找
- Linux学习 第十一单元