在我的Android代码中,我通过调用Timer.schedule(myTask,0,1000)来响应按钮按下,调用myTimerTask :: run(),这是这样的:
嵌套在我的活动中:
class mytimerTask extends TimerTask {
@Override
public void run() {
//update my progress bar
//if progress bar is full, i want to call a function that is in my activity
}
}
我可以直接从TimerTask引用我的一个Activity方法吗?当我尝试它时,它似乎崩溃了。
对我来说,处理我的ProgressBar以及从Runnable而不是Timer / TimerTask最终执行代码会不会更好?
答案 0 :(得分:1)
您需要使用以下代码。要知道原因检查以下线程 What is the Android UiThread (UI thread)或http://developer.android.com/resources/articles/painless-threading.html
Timer t;
Handler handler = new Handler();
t = new Timer();
Class MyTimerTask extends TimerTask{
public void run() {
handler.post(new Runnable() {
public void run() {
//update my progress bar
//if progress bar is full, i want to call a function that is in my activity
}
});
}
t.schedule(timeTask, 0, 1000);