【发布时间】:2014-07-24 07:31:02
【问题描述】:
我无法在 DialogFragment 中修改 UI onPostExecute
我已经阅读了有关此的所有问题。这不是同样的情况。相信我。
我知道一个AsyncTask doInBackground 函数有他自己的线程,你必须在onPreExecute 和onPostExecute 中触摸视图。 有了这些东西,应用程序仍然崩溃。
我得到的例外是:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at .onPostExecute(CustomDialogFragment.java:310)
at android.os.AsyncTask.finish(AsyncTask.java:631)
【问题讨论】:
-
这里:
activity.runOnUiThread(new Runnable() { ... }。我认为activity为空,你为什么不使用getActivity(),如下所示?无论如何嵌套AsyncTask可能很危险,您可能会造成内存泄漏。 -
你不需要
runOnUiThread,因为onPostExecute是在ui线程上调用的 -
CustomDialog.java:310是哪一行? -
Toast.makeText(getActivity().getApplicationContext(), "为什么 onPostExecute 不起作用", Toast.LENGTH_SHORT).show();
-
“无法触摸视图...”问题的链接与此有何关系?请补充一些说明文字。
标签: java android multithreading android-asynctask