Я показываю окно предупреждения в своем приложении, чтобы включить GPS, приложение работает нормально в первый раз, но во второй раз сработает, а затем работает нормально для третьего и сработает в четвертый раз и так на. При сбоях отображается сообщение об ошибке «Работает ли ваша работа?». Я попробовал его с обработчиком и отдельным потоком пользовательского интерфейса, но не успел. Я пытаюсь это сделать.Android-приложение сбой при отображении alertBox для включения GPS
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ExceptionHandler.register(this, WebServiceIface.BASE_URL
+ "/exception/log");
instanceState = savedInstanceState;
appStatus = AppStatus.getInstance(this);
appStatus.mFromQrCode = false;
mhandler = new Handler();
appPreferences = PreferenceManager.getDefaultSharedPreferences(this);
isFromLogin = getIntent().getBooleanExtra("LOGIN_FLAG", false);
isOnPause = false;
listenForLocation();
loginIfNeeded();
}
private void listenForLocation() {
gps = GpsLocator.getGpsLocator(this);
gps.listen();
}
@Override
protected void onResume() {
super.onResume();
gps.destroyGpsDialog();
listenForLocation();
compareTimes();
isResuming = true;
isOnPause = false;
isFromRefresh=true;
}
Я вызываю окно предупреждения от GpsLocator деятельности
public void createGpsDialog(){
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Yout GPS seems to be disabled, do you want to enable it?").setCancelable(true)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int id) {
dialog.dismiss();
context.startActivityForResult(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS),6186);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int id) {
dialog.dismiss();
}
});
alert = builder.create();
alert.show();
}
Это очень странно, что это происходит сбой только на второй раз
EDIT ..
private GpsLocator(CheckinNativeActivity context) {
this.context = context;
this.observers = new ArrayList<GpsFragment>();
this.removalList = new ArrayList<GpsFragment>();
}
public static GpsLocator getGpsLocator(CheckinNativeActivity cxt) {
if (ref == null)
ref = new GpsLocator(cxt);
return ref;
}
Что делать у вас есть переменная «context»? Вы не перерегистрируете его? –
Это основной контекст активности, здесь я использую фрагменты. – abhishek
Просьба указать destroyGpsDialog() здесь –