我正在尝试在 while(true) 循环内使用 handler.postdelayed
,因此每 5 秒它将使用按钮发送一个特定值
但是当我按下按钮时它只是挂起而没有任何响应它不会崩溃也不会发送
我如何使用循环内延迟的帖子?
btnsend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
while(true) {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
DatabaseReference childRoot = rootRoomName.push();
Map<String, Object> map = new HashMap<String, Object>();
map.put("Name", username);
map.put("message", Response1);
childRoot.updateChildren(map);
}
}, 5000);
}
}
});
最佳答案
这是错误的。您正在使用 while(true) 循环杀死应用程序。相反,您应该在最后从 run() 方法内部调用 postDelayed,以便它每次执行后都会自行调度。像这样的事情:
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
handler.postDelayed(this, 5000);
}
}
handler.post(runnable);
关于java - 在 while 循环内使用 post 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386359/