如何执行AsyncTask<>位于其父母的片段?

时间:2012-12-15 13:51:38

标签: android android-asynctask android-fragments

这看起来比它看起来更难,或者我做错了。我需要更新片段中UI元素的内容。

因此,在Activity内,我开始AsyncTask这样的任务

new MyAsyncTask().execute();

在“普通”Activity内部,这个异步类是private所以我认为我可以在片段类中创建它public然后能够从{{1}调用它父类。像这样:

FragmentActivity

无效

有人可以帮忙吗?

PS。我的片段在XML中不是MyFragment myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.layout.my_fragment); new myFragment.DoParsingAsyncTask().execute(""); //??? a silly guess 个视图,但我通过<fragment>处理它们。我通过ViewPager显示页面没有问题 PPS。此异步类开始解析远程内容并填充片段中的UI元素。

1 个答案:

答案 0 :(得分:9)

它可能无法解决问题,但在片段中创建一个方法并调用它来创建和启动异步任务。它会更整洁。这是代码。

Fragment调用这样的方法。

Activity myActivity = getActivity();
if (myActivity instanceof MyActivity) {
     ((MyActivity) myActivity).doAsyncTaskMethod();
}

或者您可以尝试我已经提出的解决方案。

MyFragment myFragment = (MyFragment) getSupportFragmentManager().findFragmentById(R.layout.my_fragment);
myFragment.new DoParsingAsyncTask().execute("");

哪个也有效。