我有一个接收滑动手势的视图。 这应该触发主活动的创建和setContentView(布局)。 (视图在主要活动的布局内)AsyncTask结果与常规功能不同
当我试图在一个异步的内部做到这一点,它留下了所有的布局图像?好像它还没有完成。 有很多东西我不完全理解。
这从view.java
Main.mHandler.post(new Runnable()
{
public void run()
{
new Main.GetNavigationLayout().execute(url);
}
});
的URL部分代码是我用它来创建一个新的布局的.xml文件的位置。
GetNavigationLayout是的AsyncTask
代码是在的AsyncTask Main.java:
public static class GetNavigationLayout extends AsyncTask<String, Void, CustomLayout> {
boolean isDone = false;
@Override
protected EvadoLayout doInBackground(String... url)
{
CustomLayout layout = new CustomLayout(Main);
Looper.prepare();
try
{
String newpage = url[0];
Document doc = XmlImporter.GetNewPlayer(newpage);
if (doc == null)
{
layout = null;
}
layout.LoadXml(doc); // cause drawing of objects etc.
}
catch (Exception e)
{
e.printStackTrace();
}
isDone = true;
//Looper.loop(); // causes it to never return...
return layout;
}
@Override
protected void onPostExecute(CustomLayout layout)
{
if (isDone)
Main.setContentView(layout);
}
}
现在这说明除了图像everythig,而如果我运行这个没有的AsyncTask它会显示在布局的一切。 我在想什么?
This Works。谢谢。 这是坏的它的作品,虽然,我一直在寻找一种方式来绘制多个布局在同一时间。 (因此异步)。 我想我会需要一些更多的测试。 谢谢! 然后将它们添加到swipeView。 – ron
经过一番测试后,它看起来像我遇到了一个新问题; 10-05 16:32:28.730:错误/ AndroidRuntime(2024):引起:java.lang.RuntimeException:每个线程只能创建一个Looper。 据我可以告诉我没有宣布更多loopers? 如果我删除Looper.prepare(); AsyncTask会崩溃... – ron