我不太清楚程序如何在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
方法。
但是当我第一次选择该选项并进行第一次放大/缩小操作时,它只是绘制一次。如果我需要绘制剩余的,我必须按照当前实现再次单击该选项。这项活动如何运作,我应该拥有它?
答案 0 :(得分:1)
只要Android操作系统必须“创建”您的活动,就会调用onCreate
方法。
这将在您的Activity的初始加载时发生,也会在操作系统自动销毁您的活动或您调用活动的finish()
方法时发生。
onCreate
方法之后是另一个名为onStart
的Activity方法。
当活动现在对用户可见时,将调用此方法。
关于onLocationChanged
和onTouchEvent
实现,这两种方法由设置为对象的侦听器执行。
例如,每次地图监听器确定位置已更改时,onLocationChanged
都会执行。
onTouchEvent
会在您的视图收到用户的触摸事件时执行。
您的onPause
和onResume
方法是Activity类的一部分,这些方法与onCreate
类似,但它们在不同时间被调用。
具体而言,只要您的“活动”不是前端焦点视图,就会调用onPause
。
onResume
方法与onPause
相反 - 当您的活动视图现在是屏幕上的焦点视图时,它将被调用。
http://developer.android.com/training/basics/activity-lifecycle/pausing.html
答案 1 :(得分:0)
这些都在下面的图表中(在开发网站和其他地方找到):