我如何实现doinbackground回调方法

时间:2016-03-24 10:14:32

标签: android google-maps android-studio callback

我的应用程序在我的Android应用程序中将谷歌地图实施到单独的选项卡后开始崩溃。我查看了所有其他类和logcat,并认为这些类轻量级导致此问题。

这是我的地图类

public class FragmentShouts_Maps extends Fragment implements OnMapReadyCallback {


public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Get the view from fragment shouts.xml
    View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
    SupportMapFragment fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.maps);
    if (fragment!= null) {
        fragment.getMapAsync(this);
    }
    return view;
}


@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
}

@Override
public void onMapReady (GoogleMap googleMap) {

}

}

我注意到当我使用dpi较低且没有谷歌播放的模拟器时,我的应用程序将进入此选项卡,但将停止并结束。在较新的api(23)上使用google play服务它甚至不会那么远,一旦我从主页选项卡上滑动,它就会变得反应迟钝并结束。

我没有错误代码所以一旦我实现doinbackground方法应该工作我相信我只是不明白如何实现这个?

1 个答案:

答案 0 :(得分:0)

不知道您的代码有什么问题,但我在我的应用程序中实现了谷歌地图,它运作得很好。看看这是否是您正在寻找的doInBackground实现。希望这会有所帮助。

public class MapActivity extends Activity implements OnMapReadyCallback{

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);

        MapFragment mapFragment = (MapFragment)getFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(final GoogleMap map){
        // Your Code
        AsyncTask<String,Void,String> asyncTask = new AsyncTask<String,Void,String>(){
            @Override
            protected String doInBackground(String... params) {
                // Do Something
            }

            @Override
            protected void onPostExecute(String json) {
                // Do Something
            }
        };
        asyncTask.execute(url);
    }
}