2012-06-14 2 views
2

Я показываю окно предупреждения в своем приложении, чтобы включить 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; 
    } 
+0

Что делать у вас есть переменная «context»? Вы не перерегистрируете его? –

+0

Это основной контекст активности, здесь я использую фрагменты. – abhishek

+0

Просьба указать destroyGpsDialog() здесь –

ответ

1

В любом случае нужно проверить контекст передается в чеке случае, если контекст передается GPsLocator активность или нет при вызове намерения для деятельности

+0

Я уже передаю контекст. пожалуйста, проверьте выше, я добавил фрагмент. – abhishek

+0

попробуйте это, частный GpsLocator (CheckinNativeActivity context) { this.observers = new ArrayList (); this.removalList = новый ArrayList (); } Публичный статический GpsLocator getGpsLocator (CheckinNativeActivity cxt) { if (ref == null) ref = new GpsLocator (cxt); context = cxt; return ref; } – nleshjinde

+0

Спасибо за его работы ........... – abhishek

0

попробуйте с context.getApplicationContext() здесь вместо cont внутр ........

Using Application context everywhere?

+0

Но это только сбой в четные времена. т.е. 2,4,6 .... – abhishek

+0

не понимаю? если приложение уже разбилось на 2, то как вы дойдете до 4? –

+0

Когда я начинаю в первый раз, он отлично работает, затем я закрываю приложение и перезагружаю его, сбой приложений, затем снова запускаю приложение, и все работает нормально, а затем сбой, когда я перезапускаю четвертый раз. – abhishek

Смежные вопросы