,我有一个FrameLayout
main_activity和Fragment
通话的AsyncTask从我的应用程序的活动
public class Fragment1 extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
return view;
}
public class StartAsyncTask extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void... voids) {
Log.e("startAsyncTask", "start");
return null;
}
}
}
我需要从MainActivity
致电AsyncTask
, 所以我用:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
Fragment1 fragment1 = new Fragment1();
fragmentTransaction.replace(R.id.fragment, fragment1).commit();
new Fragment1.StartAsyncTask().execute();
}
但它没有工作。 new Fragment1.StartAsyncTask().execute();
与(不包括类)错误。
我不明白你为什么要打电话片段的异步任务,但你的问题是这是一个内部类。您可以将其更改为'public static class StartAsyncTask extends AsyncTask ...',或者使用静态工厂方法。 –
从片段内部调用'AsyncTask'是唯一可能的方式,覆盖'onViewCreated'并实例化你的'AsnycTask' –
@YoniGross我将在MainActivity工具栏中使用一个searchview,所以我需要刷新AsyncTask以获得listview结果,我希望我解释得很好 –