Android 谷歌地图挂在慢速互联网连接,安卓

Android 谷歌地图挂在慢速互联网连接,安卓,android,android-fragments,android-googleapiclient,Android,Android Fragments,Android Googleapiclient,在我的一个活动中,我展示了谷歌地图的片段。它可以与3g或高速互联网连接正常工作。但在2g或非常慢的互联网连接中,它会挂断我的手机,一段时间后,我会收到“无响应”的消息。 我有什么办法处理这种情况吗 这是我的工作代码:- public class MapLoader extends FragmentActivity implements View.OnClickListener { // GUI Widget TextView lblNumber; Button btnCall; Strin

在我的一个活动中,我展示了谷歌地图的片段。它可以与3g或高速互联网连接正常工作。但在2g或非常慢的互联网连接中,它会挂断我的手机,一段时间后,我会收到“无响应”的消息。 我有什么办法处理这种情况吗

这是我的工作代码:-

 public class MapLoader extends FragmentActivity implements View.OnClickListener {
  // GUI Widget
TextView lblNumber;
Button btnCall;
String number;
GoogleMap googleMap;
Bitmap myBitmap;
private String filePath;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mapload);

    // Getting reference to the SupportMapFragment of activity_main.xml
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

    // Getting GoogleMap object from the fragment
    googleMap = mapFragment.getMap();
    googleMap.clear();
    String filterAddress = "";
    double lat=0;
    double lng=0;
    String ontime="";
    try {
        UserFunctions userFunction = new UserFunctions();
        JSONObject json = userFunction.getUserData(number);
        if(json.has("user")) {
            JSONArray android_version_array = json.getJSONArray("user");
            //getting android version
            for (int i = 0; i < android_version_array.length(); i++) {
                // creating new HashMap
                HashMap<String, String> map = new HashMap<String, String>();
                JSONObject myObj = android_version_array.getJSONObject(i);
                String lattiude = myObj.getString("latitude");
                String logitude = myObj.getString("longitude");
                ontime=myObj.getString("gpsTime");
                lat = Double.parseDouble(lattiude);
                lng = Double.parseDouble(logitude);
                // adding each child node to HashMap key => value
            }

            Geocoder geoCoder = new Geocoder(
                    getBaseContext(), Locale.getDefault());
            try {
                List<Address> addresses = geoCoder.getFromLocation(
                        lat,
                        lng, 1);

                if (addresses.size() > 0) {
                    for (int index = 0;
                         index < addresses.get(0).getMaxAddressLineIndex(); index++)
                        filterAddress += addresses.get(0).getAddressLine(index) + " ";

                }
                //  SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
                //  mapFragment.getView().findViewById()
                TextView a = (TextView) findViewById(R.id.test);
                a.setText(filterAddress);
            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (Exception e2) {
                // TODO: handle exception

                e2.printStackTrace();
            }

             // Creating an instance of MarkerOptions to set position
            MarkerOptions markerOptions = new MarkerOptions();

            LatLng LOCATION = new LatLng(lat, lng);
            // Setting position on the MarkerOptions
            markerOptions.position(LOCATION);

            // Animating to the currently touched position
            // googleMap.animateCamera(CameraUpdateFactory.newLatLng(LOCATION),17.0f);
            googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng), 17.0f));

            // Adding marker on the GoogleMap
            Marker marker = googleMap.addMarker(markerOptions);
            // Showing InfoWindow on the GoogleMap
            marker.showInfoWindow();

   }catch (Exception e){
        e.printStackTrace();
     }
  }
 }
公共类MapLoader扩展FragmentActivity实现View.OnClickListener{
//GUI小部件
文本视图lblNumber;
按钮btnCall;
字符串编号;
谷歌地图谷歌地图;
位图;
私有字符串文件路径;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.mapload);
//获取对activity_main.xml的SupportMapFragment的引用
SupportMapFragment mapFragment=(SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
//从片段中获取GoogleMap对象
googleMap=mapFragment.getMap();
googleMap.clear();
字符串filterAddress=“”;
双lat=0;
双液化天然气=0;
字符串ontime=“”;
试一试{
UserFunctions userFunction=新的UserFunctions();
JSONObject json=userFunction.getUserData(数字);
if(json.has(“用户”)){
JSONArray android_version_array=json.getJSONArray(“用户”);
//获取android版本
for(int i=0;ivalue
}
地理编码器地理编码器=新地理编码器(
getBaseContext(),Locale.getDefault();
试一试{
列表地址=geoCoder.getFromLocation(
拉特,
液化天然气(1);
如果(地址.size()>0){
对于(int指数=0;
索引

注意:-它不是完整的代码。出于安全原因,我删除了一些代码。

getMap()
不推荐使用。您应该使用
getmapsync()
并避免等待UI线程。

谢谢,但当我使用getMapAsync时,它的显示无法解析方法“getMapAsync”。可能您使用的是非常旧的库版本,您需要更新到最新版本。我使用的是这个编译“com.google.android.gms:play services:4.3.23”哇:)它真的很旧。最后一个版本是7.5!!!如果答案对你合适,请接受。