В приложении Android есть проблема. Если я установлю метод внутри onCreate(), все приложение будет аварийно завершено.
Вот код
private LocationManager locationManager = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent i3 = new Intent();
i3.setClass(mainMenu.this, police.class);
i3.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mainMenu.this.startActivityForResult(i3,0);
}
});
locationManager = (LocationManager)mainMenu.this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000 , 0 , new MyLocationUpdater());
Location location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);
updateWithNewLocation(location);
}
Метод updateWIthNewLocation (Location location) находится вне onCreate(); Я не могу назвать это успешно внутри onCreate().
Любые идеи?
Сначала вам нужно научиться использовать adb logcat
, DDMS или перспективу DDMS в Eclipse, чтобы проверить LogCat и посмотреть на трассировку стека, связанную с вашей ошибкой.
Я предполагаю, что вы сработали с NullPointerException
, потому что location
, вероятно, null
. Это может занять от нескольких секунд до того, как вы выберете место после вызова requestLocationUpdates()
. Если это действительно то, с чем вы сталкиваетесь, измените ваше приложение, чтобы удалить вызов getLastKnownLocation()
и переместите вызов updateWithNewLocation()
на метод onLocationChange()
в MyLocationUpdater
.
updateWithNewLocation()
? Вы не показываете это нигде в вашем коде. Кроме того, какую ошибку вы получаете в LogCat?