0

我不太清楚该程序如何在 Android 中运行。过去两个月我开始在 Android 上工作,而且我还是 Java 的初学者。所以,我正在尽我所能去发展和学习。这是我实现的一段代码,我不太清楚它是如何按照我的要求工作的。

 activity{
    onCreate(){
          /* here i am using google maps api and trying to plot the current location*/                 
      OverlayItem overlayItem1 = new OverlayItem(ourLocation,"Our Location","Position");
         CustomPinpoint custom1 = new CustomPinpoint(d, Activity.this);
            custom1.insertPinpoint(overlayItem1);
            overlayList.add(custom1);               
                controller.animateTo(ourLocation);
        }
    private class TouchOverlay extends com.google.android.maps.Overlay{
          public boolean onTouchEvent(MotionEvent event, MapView map){
              onZoom();
         }
        }
    public boolean onCreateOptionsMenu(Menu menu){}
    public boolean onOptionsItemSelected(MenuItem item){
       case.X:
        getGPSPoints();//Here i will be getting some gps points from stored database 
         // and I would like to plot them all on the map. 
        TouchOverlay touchOverlay = new TouchOverlay();
    overlayList.add(touchOverlay);
    }
    onPause(){
            super.onPause();
    lm.removeUpdates(this);
    }
    onResume(){
            super.onResume();
    lm.requestLocationUpdates(towers, 500, (float) 0.5, this);
    }
    onLocationChanged(Location l) {
    // TODO Auto-generated method stub
    clearmap();
    lat = (int) (l.getLatitude()*1E6);
    longi = (int) (l.getLongitude()*1E6);
    GeoPoint ourLocation = new GeoPoint(lat, longi);
    CustomPinpoint custom = new CustomPinpoint(d, TrafficMapActivity.this);
            OverlayItem overlayItem = new OverlayItem(ourLocation,"Our location","Position");
            custom.insertPinpoint(overlayItem);
            overlayList.add(custom);
        }
       }

我的问题是何时onLocationChanged调用方法以及 onTouchEvent 方法?

我创建了一个方法getGPSPoints(),我想在地图上绘制获得的点。我的意图是它像谷歌地图交通层。当我们拖动屏幕或放大/缩小时,我应该连续绘图。为此,我在类的方法中使用相同的getGPSPoints方法。onZoom()TouchOverlay

但是当我第一次选择该选项并进行第一次放大/缩小操作时,它只是绘制一次。如果我需要绘制剩余的部分,我必须根据当前的实现再次单击该选项。这项活动如何运作,我应该拥有它?

4

2 回答 2

1

onCreate每当 Android 操作系统必须“创建”您的 Activity 时,都会调用您的方法。

这将在您的 Activity 的初始加载时发生,并且在操作系统自愿销毁您的 Activity 或您调用 Activity 的finish()方法时也会发生。

onCreate方法之后是另一个名为 Activity 的方法onStart

这将在 Activity 现在对用户可见时被调用。

关于onLocationChangedonTouchEvent实现,这两种类型的方法由设置为对象的侦听器执行。

例如,onLocationChanged每次您的地图侦听器确定位置已更改时都会执行。

onTouchEvent只要您的视图收到用户的触摸事件,就会执行。

你的onPauseonResume方法是 Activity 类的一部分,这些方法类似于onCreate,尽管它们在不同的时间被调用。

具体来说,onPause只要您的 Activity 不是前面的焦点视图,就会调用它。

onResume方法是相反的onPause- 当您的 Activity 的视图现在是屏幕上的焦点视图时,它将被调用。

http://developer.android.com/training/basics/activity-lifecycle/pausing.html

于 2012-09-23T15:31:08.163 回答
0

这一切都在下图中(可在开发网站等其他地方找到):

安卓生命周期

于 2012-09-23T15:47:05.620 回答