我需要开始后台任务。任务调用异步http请求,如果条件有效则显示警报。
我实现了它,但是收到了这个错误:
了java.lang.RuntimeException: 无法在未调用的线程内创建处理程序 Looper.prepare()
这是我的java代码:
Timer timer = new Timer();
timer.schedule(new RequestScheduledTask(), intervalTask);
class RequestScheduledTask extends TimerTask {
@Override
public void run() {
myCall();
}
}
你能帮我吗?
谢谢
卢卡
答案 0 :(得分:0)
根据以下帖子,你在一个主线程上调用的线程中做了一些事情!什么是myCall();
在做什么?
并且不要使用异常任务执行http请求,这是不好的做法。
我会建议使用凌空:
[编辑]
好的,应该在主线程上调用加载指示符。我猜你是在AsyncTask中做的。 您可以使用Activity.runOnUiThread(Runnable())运行runnable来显示它。
答案 1 :(得分:0)
例如,我需要在更改数据时刷新适配器列表。从webserver返回的数据可以更改或不更改。如果它被更改我必须刷新listview / adapter,否则没有。
myCall呼叫服务器,获取数据响应(使用其他框架,如凌空),然后更新列表视图。
当myCall启动时,我想要显示加载指示器,但是当我显示它时,应用程序崩溃并出现运行时异常
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()