如何使用AsyncTask从类返回视图

时间:2012-12-07 05:15:33

标签: android android-asynctask android-fragments android-view

我有一个扩展Fragment的类(如下所示)。现在我需要我的类在创建对象时将视图返回到Other类。一切都工作正常,但我需要这个类在后台线程中做的事情。 我还使用了ASYNC任务,但是我无法使ASYNC任务返回视图。任何人都可以帮忙。??

MapFragment.java

public class MapsFragment extends Fragment 
{  
    MapView map;
    LayoutInflater inflater_;
    ViewGroup container_;
    View layout;

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    {  
        inflater_=inflater;
        container_=container;
        super.onCreate(savedInstanceState);
        layout = inflater.inflate(R.layout.fragment_maps, container, false);
        map = (MapView) layout.findViewById(R.id.mapView);
        return (LinearLayout) layout;  
    }
}

1 个答案:

答案 0 :(得分:2)

我不知道为什么要将View传递给AsyncTask,但这是一种基本方法:

public class MyAsync extends AsyncTask<Void, Void, Void> {
    private View view;

    public MyAsync(View view) {
        this.view = view;
    }

    @Override
    protected Void doInBackground(Void... params) {
        // Do something, but not with view
        return null;
    }

    @Override
    protected void onPostExecute(Void v) {
        // You can alter view here or in the other methods with UI access
        view.setVisibility(View.GONE);
    }
}

如果此方法不适用于您想要做的事情,您也可以使用自己的回调。