我希望我的代码可以运行一分钟.. 谁能解释我怎么做?
private Handler myHandler;
private Runnable myRunnable = new Runnable() {
@Override
public void run() {
//DO WORK
Toast.makeText(getApplicationContext(), " Hello",Toast.LENGTH_SHORT).show();
myHandler.postDelayed(this,60000);
}
};
@Override
public void onCreate() {
super.onCreate();
//call function
myHandler = new Handler();
//
myHandler.postDelayed(myRunnable,60000);
Log.d(this.getClass().getName(), "onCreate");
}
答案 0 :(得分:0)
Timer是一个有效的解决方案,但它不会在UI线程上执行。你的代码告诉我这就是你想要的。
最简单的方法是通过处理程序和重复任务:
final Handler handler = new Handler(); // ui thread handler
handler.postDelayed(new MyRunnable(handler), INETRVAL);
其中:
class MyRunnable implements Runnable {
@Override
public void run() {
// do periodical action here
// and.. repeat your task <------------
handler.postDelayed(new MyRunnable(handler), INETRVAL);
}
}
答案 1 :(得分:0)
BTW 60秒是线程运行的很长时间!如果你有一些运行这么长的东西考虑使用Android服务而不是线程。
你还需要使用处理程序吗?再想一想,大部分时间都没有必要。 AsyncTask是Android多线程的第一选择,它更简单。除非AsyncTask无法处理你的想法,否则不要使用任何其他方法。