android中调用timer.cancel函数问题 用了一个事件触发了timer.cancel()函数,当我想重新调用timer的时候就报错说timer已经cancel,有什么方法重新调用timer么??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以前遇到过这种情况,只不过不是android下的。我的解决办法是对timertask进行操作,首先保持一个timertask的一个备份。操作时cancel timertask,然后重新调用的时候再schedule一次他的备份。代码示例:import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Timer_cancel { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Timer timer = new Timer(); MyTask task = new MyTask(); timer.schedule(task.getCopy(), 0, 2000); Thread.sleep(5000); task.cancel(); timer.schedule(task.getCopy(), 0, 1000); } static class MyTask extends TimerTask implements Cloneable { private MyTask myTask; @Override public void run() { // TODO Auto-generated method stub System.out.println(Thread.currentThread().getName() + "\t" + new Date()); } public MyTask getCopy() { if(myTask == null) myTask = new MyTask(); try { return (MyTask)myTask.clone(); } catch (CloneNotSupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } }} 写错了一个地方,更正一下。public static void main(String[] args) throws Exception { // TODO Auto-generated method stub Timer timer = new Timer(); MyTask task = new MyTask(); MyTask task1 = new MyTask(); timer.schedule(task1, 0, 2000); Thread.sleep(5000); task1.cancel(); timer.schedule(task.getCopy(), 5000, 1000); } 重新new一个不可以吗??? android.graphics.drawable怎么设置时间隐藏? 新手求助各位前辈 Android(1.5)以下代码有什么问题? 为什么我真机调试,无法自动启动程序啊? 求 android 搜索通讯录中的特殊字符 单击时的坐标为何不对(nexus one手机) android版本号和Linux内核的版本号必须对应吗? 安卓程序与VC的socket通信 android开发连接www.baidu.com超时的问题 安卓开发,如何实现不闪屏,不重启activity直接换主题颜色 往sim卡上写短信 ~~~~关于 android 开发薪资问题 的调查
代码示例:import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;public class Timer_cancel { /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Timer timer = new Timer();
MyTask task = new MyTask();
timer.schedule(task.getCopy(), 0, 2000);
Thread.sleep(5000);
task.cancel();
timer.schedule(task.getCopy(), 0, 1000);
} static class MyTask extends TimerTask implements Cloneable { private MyTask myTask; @Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName() + "\t" + new Date());
}
public MyTask getCopy() {
if(myTask == null)
myTask = new MyTask();
try {
return (MyTask)myTask.clone();
} catch (CloneNotSupportedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
}
写错了一个地方,更正一下。public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Timer timer = new Timer();
MyTask task = new MyTask();
MyTask task1 = new MyTask();
timer.schedule(task1, 0, 2000);
Thread.sleep(5000);
task1.cancel();
timer.schedule(task.getCopy(), 5000, 1000);
}