У меня есть Java-приложение, которое использует LocationProvider API для регистрации LocationListener при запуске приложения и отменяет его регистрацию при закрытии приложения.То же самое происходит, когда приложение помещается в фоновый режим и возвращается на передний план.
В большинстве случаев это работает довольно хорошо, но в последнее время я испытываю зависаний / зависаний приложения наразличные устройства (например, я мог бы воспроизвести его на моей BlackBerry Torch OS 6, кажется, что это происходит чаще на устройствах с OS 6).
I открыть приложение, закрыть его , открыть оно и оно зависает при попытке закройте снова .Я не могу закрыть это больше.Я должен использовать функцию «переключить приложение», чтобы перейти к другому приложению (удерживая кнопку «Меню» или нажав зеленую или красную кнопку).
Через некоторое время я получаю сообщение об ошибке, в котором говорится, что приложение не отвечает и было закрыто.
Код выглядит следующим образом:
public void activate() {
if (ApplicationPermissionsManager.getInstance().getPermission(14) == ApplicationPermissions.VALUE_ALLOW) {
startLocationProvider();
}
}
public void deactivate() {
if (ApplicationPermissionsManager.getInstance().getPermission(14) == ApplicationPermissions.VALUE_ALLOW) {
stopLocationProvider();
}
}
public boolean onClose() {
stopLocationProvider();
System.exit(0);
return true;
}
public void startLocationProvider() {
try {
locationProvider = LocationProvider.getInstance(new BlackBerryCriteria(GPSInfo.GPS_MODE_ASSIST));
if (locationProvider != null) {
locationProvider.setLocationListener(new LocationListenerImpl(), 10, 9, -1);
}
} catch (Exception le) {
// log it
}
}
public void stopLocationProvider() {
if (locationProvider != null) {
try {
locationProvider.setLocationListener(null, -1, -1, -1);
locationProvider = null;
} catch (Exception se) {
// log it
}
}
}