【发布时间】:2015-11-03 15:18:13
【问题描述】:
这个问题之前可能已经问过,但我无法通过搜索找到它。
我在我的 android 应用程序中实现了一个活动,并且我在这个活动中使用了一个 Asynctask 类。我试图从 Asynctask (doInBackgroung) 对我的布局进行一些更改,因此我从提到的 Asynctask 中调用了 runOnUiThread。这可以正常工作,但是一旦我移至另一个活动并再次返回此活动,布局的更改就不会再发生了。
值得一提的是,我在移动到下一个活动时调用了asynctask.cancel(true),并在返回包含提到的异步任务的活动时重建了该异步任务。
请指导我如何处理这个问题。
【问题讨论】:
-
回到原来的任务时,你是在打电话
.execute()吗? github.com/xxv/android-lifecycle此链接将帮助您了解何时应该重新实例化对象,例如AsyncTasks -
当您在活动上调用 setContentView() 时,它将重新加载 xml 中定义的布局,忽略您对 UI 的更改,这是您的问题吗?
-
我在活动开始时调用
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, param);,在onCreate()。我试过.execute,但没有成功。 -
@Nanoc 不,这不完全是我的问题。返回活动时,我的 runOnUIthread 中放置在 asynTask(doInbackground) 中的代码无法正常工作。这些代码应该会改变我主要布局中的一些图标。
标签: java android multithreading android-asynctask