我有几个活动处理不同的屏幕,其信息是通过AsyncTask异步加载的。
所有数据提取都在doInBackground()中完成 所有UI操作都在onPostExecute()
中完成在某些情况下,我收到错误:“无法在未调用Looper.prepare()的线程内创建处理程序”
如果我执行Looper.prepare(),如果为此类实例化了一个新活动,它就会崩溃。
这是一种奇怪的行为,我能够找到它发生的原因。具有类似行为的其他屏幕按预期工作。我找不到他们之间的差异。
有没有人有这种行为?
答案 0 :(得分:1)
“无法在未调用Looper.prepare()的线程内创建处理程序”表示您尝试在UI线程之外调用AsyncTask.execute()
。
您应该使用AsyncTask
遵循的规则很少:
这也意味着您要在Handler
方法中创建doInBackground
对象。