如何刷新每5秒钟内线程中的runOnUiThread?
mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
data ="";
String splithis;
splithis=mySpinner.getSelectedItem().toString();
splited = splithis.split(" ");
course = splited[0];
sections = splited[2];
new Thread(new Runnable() {
public void run() {
data = bw.getAttendanceFromDB(term, course,sections,day);
runOnUiThread(new Runnable() {
@Override
public void run() {
ArrayList<Properties> attendanceusers = attendanceUse(data);
addAttendance(attendanceusers);
}
});
}
}).start();
}
我有ArrayList attendanceusers填充我的动态设计,它正在学生的出席和数据库中动态填充我的设计。但是,每当有其他学生进来时,它并不会动态地反映这种变化。刷新正在发生,如果我点击另一个日期,但我想要的是它每5秒或10秒刷新一次。即时通讯试图研究堆栈中的答案,但所有的答案都不同于我的答案。如何刷新每5秒钟内线程中的runOnUiThread?
回答:
下面是如何每5秒钟在线程中运行某些内容的示例,您可以将其添加到任意位置。
Handler handler = new Handler(Looper.getMainLooper()); Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
data = bw.getAttendanceFromDB(term, course,sections,day);
}
}, 0, 5 * 1000);
handler.post(new Runnable() {
public void run() {
ArrayList<Properties> attendanceusers = attendanceUse(data);
addAttendance(attendanceusers);
}
})
您可以将其从单击监听器中取出并运行一次。
当您的活动暂停时,请不要忘记拨打电话timer.cancel()
,然后在恢复时重新运行()。
以上是 如何刷新每5秒钟内线程中的runOnUiThread? 的全部内容, 来源链接: utcz.com/qa/257717.html