我正在为我做一个测试项目,所以我可以学到更多,所以现在我需要通过TextView
循环每250毫秒不断更新for(;;)
的文本,它会发生按下按钮后...我的问题是每当我按下该按钮我的应用程序冻结(是的我的按钮完全正常工作,通过以前的测试验证),我使用主线程的处理程序不会受到影响{ {1}}已经......这是我的Button和Handler的代码......
Runnable
如果您需要更多信息请询问:)
答案 0 :(得分:3)
使用handler.postDelayed
每250毫秒不断更新textview,而不是使用for loop
来避免冻结当前活动:
Handler handler=new Handler();
B3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.post(runnable);
}
});
Runnable runnable=new Runnable(){
@Override
public void run() {
String a = Shells.sendSingleCommand("free");
text.setText(a);
handler.postDelayed(runnable, 250);
}
};
答案 1 :(得分:0)
Android不允许您在主线程中执行长任务。如果你需要这样做,我建议将for循环和相关代码移动到一个单独的线程中。