我拉动了大约1500个数据地块,并将它们添加到地图视图的叠加层。我想在另一个线程中运行它,而我的程序的其余部分完成启动。我希望进度微调器只在地图部分旋转,而其加载数据图点。如何让Async在后台运行线程?
我已经搜查,发现我所需要的,但林不知道如何实现它,并在那里我的代码把它。
- 我会放什么PARAMS
- 这是否走在其他类或我的主要onCreate方法。
我什么时候可以调用这些方法?
private class UpdateFeedTask extends AsyncTask<MyActivity, Void, Void> { private ProgressDialog mDialog; protected void onPreExecute() { Log.d(TAG, " pre execute async"); mDialog = ProgressDialog.show(MyActivity.this,"Please wait...", "Retrieving data ...", true); } protected void onProgressUpdate(Void... progress) { Log.d(TAG, " progress async"); } @Override protected Void doInBackground(MyActivity... params) { // TODO Auto-generated method stub return null; } protected void onPostExecute(Void result) { Log.d(TAG, " post execute async"); mDialog.dismiss(); } }
所以我追溯到我的程序进度条出现,但它不会执行任何代码,如 setContentView(R.layout.maptabview); \t \t mapView =(MapView)findViewById(R.id.mapView); \t \t Log.v(“”,“Runnnnnn”); \t \t mapView.setBuiltInZoomControls(true); \t \t mapController = mapView.getController(); \t \t mapController.setZoom(4); 它只会执行log.v,如果我从那开始。 – user758114
您不想将任何对UI组件的引用放入任务(因为它可能会被终止)。我扩展了Overlay,并在我的Task中保留了一个引用。然后在任务结束时将Overlay添加到地图叠加列表中。 –