在异步任务完成之前,群集标记不会显示

时间:2014-09-23 12:48:12

标签: android google-maps android-asynctask

我的应用是这样的:

1- OnCreate: creates a google map
2- OnStart: add cluster items from sqlite database and show them on map
3- OnResume: an asynctask updates the sqlite database getting the data from internet and refreshes the activity

一切都很有效但是如果用户使用互联网连接较少的应用并在异步完成之前重新启动活动(通过旋转屏幕),则会重新创建地图,但在异步完成之前标记不会显示。

当然我希望标记一直显示,无论异步是否已经完成。

我认为这种行为有一个理论上的解释,所以也许我不需要发布任何代码,但如果你需要一些代码,请不要问我。

谢谢!

编辑:

protected void onStart(){
    super.onStart();
    updateMarkers();
    }

public void updateMarkers(){

        mClusterManager.clearItems();

        String[] campos = new String[] { "id", "lat", "longi" };
        String[] arg = new String[] {"borrado"};

        Cursor c = db.query("Sordos", campos, "estado <> ?", arg, null, null, null);


        if (c.moveToFirst()) {
            // Recorremos el cursor hasta que no haya más registros
            do {
                int id = c.getInt(0);
                String lat = c.getString(1);
                String longi = c.getString(2);


                Double l1 = Double.parseDouble(lat);
                Double l2 = Double.parseDouble(longi);

                MyItem offsetItem = new MyItem(new LatLng(l1, l2), id);

                mClusterManager.addItem(offsetItem);

            } while (c.moveToNext());

            mClusterManager.cluster();
        }
}

0 个答案:

没有答案