0

私は、Androidでプログラムがどのように機能するかについてはあまり明確ではありません。私は過去2か月間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

ただし、最初にオプションを選択したときと、最初のズームイン/ズームアウト操作では、1回だけ描​​画しています。残りを描画する必要がある場合は、現在の実装に従ってオプションをもう一度クリックする必要があります。このアクティビティはどのように機能しますか?

4

2 に答える 2

1

メソッドonCreateは、Android OS がアクティビティを「作成」する必要があるたびに呼び出されます。

finish()これは、アクティビティの初期ロード時に発生し、OS が自発的にアクティビティを破棄したとき、またはアクティビティのメソッドを呼び出した場合にも発生します。

このonCreateメソッドの後には、 という別の Activity メソッドが続きonStartます。

これは、Activity がユーザーに表示されるようになったときに呼び出されます。

onLocationChangedとの実装に関してonTouchEvent、これら 2 種類のメソッドは、オブジェクトに設定されたリスナーによって実行されます。

たとえば、onLocationChangedマップ リスナーが場所が変更されたと判断するたびに実行されます。

onTouchEvent、ビューがユーザーからタッチ イベントを受け取るたびに実行されます。

onPauseおよびonResumeメソッドは Activity クラスの一部です。これらのメソッドは に似ていonCreateますが、異なるタイミングで呼び出されます。

具体的にonPauseは、Activity が前面のフォーカスされたビューではない場合に呼び出されます。

このonResumeメソッドは逆でonPause、Activity のビューが画面上でフォーカスされたビューになったときに呼び出されます。

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

于 2012-09-23T15:31:08.163 に答える
0

それはすべて下の図にあります(他の場所の中で開発者のウェブサイトにあります):

Android ライフサイクル

于 2012-09-23T15:47:05.620 に答える