我正在尝试维护Webservice和Android应用之间的数据库同步。 下面的代码正在运行,但我遇到了一些问题:
任何人都可以按照我的意愿解释如何开始和停止这个过程吗? 我希望这个过程每5分钟运行一次,但只需一次,当应用程序打开时。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
// DO WORK
Mantenimiento();
// Call function.
handler.postDelayed(this, 1000000);
}
};
r.run();
}
答案 0 :(得分:3)
使用TimerTask:
http://thedevelopersinfo.wordpress.com/2009/10/18/scheduling-a-timer-task-to-run-repeatedly/ http://android.okhelp.cz/timer-simple-timertask-java-android-example/
或
当polean为true时,可以取布尔值并运行循环,并且让其他线程休眠,同时让app make Boolean为false。
答案 1 :(得分:0)
将使用此代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Handler handler = new Handler();
final Thread r = new Thread() {
public void run() {
// DO WORK
Mantenimiento();
// Call function.
handler.postDelayed(this, 1000000);
}
};
r.start(); // THIS IS DIFFERENT
}
答案 2 :(得分:0)
handler.postDelayed(this, 1000000);
的作用吗?它每16.7分钟启动一次。找出如何将分钟转换为毫秒并不是很困难。
handler.removeCallbacks()
以及您在postDelayed()
之前检查的布尔变量已被提及。