首先,我什至无法选择要使用的方法,我现在阅读了几个小时,有人说使用“处理程序”,有人说使用“计时器”。这是我试图实现的目标:
在首选项中,有一个设置(复选框)可以启用/禁用重复作业。当该复选框被选中时,计时器应该开始工作并且线程应该每 x 秒执行一次。由于未选中复选框,计时器应该停止。
这是我的代码:
检查是否选中了复选框,如果选中'refreshAllServers' void 将被执行,它使用计时器完成工作。
boolean CheckboxPreference = prefs.getBoolean("checkboxPref", true);
if(CheckboxPreference == true) {
Main main = new Main();
main.refreshAllServers("start");
} else {
Main main = new Main();
main.refreshAllServers("stop");
}
执行计时器工作的 refreshAllServers void:
public void refreshAllServers(String start) {
if(start == "start") {
// Start the timer which will repeatingly execute the thread
} else {
// stop the timer
}
这是我执行线程的方式:(没有计时器也能很好地工作)
Thread myThread = new MyThread(-5);
myThread.start();
我试过什么?
我尝试了任何我可以从谷歌(处理程序、计时器)看到的例子,但它们都不起作用,我设法启动了一次计时器,但停止它不起作用。我在研究中看到的最简单易懂的代码是这样的:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);