【发布时间】:2015-10-26 16:28:06
【问题描述】:
所以我需要一个while循环来自动刷新布局上的文本,我终于找到了这样的方法(我只放了重要的部分,所以你明白了):
public void restart() {
GetRate asyncRate = new GetRate();
asyncRate.execute();
}
private class GetRate extends AsyncTask<Void, Integer, String> {
@Override
protected String doInBackground(Void... params) {
try {
String p = urlfind();
return p;
}
catch (IOException e) {
return "0";
}
}
@Override
protected void onPostExecute(String p) {
price_text.setText(p);
restart();
}
现在我的问题是,这是完成这项工作的好方法还是会导致问题?该应用程序似乎运行良好,目前我没有收到任何错误,如果有更好或更简单的方法可以做到这一点,请给出答案。谢谢
编辑:结果证明这是一个非常糟糕的主意,即使我添加了睡眠间隔,应用程序也会运行 15 分钟然后崩溃,所以我不建议任何人使用它。
【问题讨论】:
-
字
auto refresh不完整,你想要达到的可以理解。 -
我不知道您的应用程序的要求是什么,但似乎您应该创建一个资源密集度较低的解决方案。
-
@UdiIdan 这是一个单独的活动而不是主要活动,urlfind() 方法使用 jsoup 从网站获取数据并返回我需要在 TextView 上更新的字符串
-
这并不重要,因为您仍在使用移动设备的资源。至少您应该以固定的合理间隔执行“自动刷新”,而不是作为无限递归函数。
-
@UdiIdan 是的,我明白了,那怎么做?我可以为此使用 Thread.sleep() 方法还是会冻结 UI?
标签: java android loops android-activity android-asynctask