2012-06-14 65 views
2

我在我的應用程序中顯示一個警告框,以啓用GPS,應用程序第一次正常工作,但第二次崩潰,然後適用於第三次罰款和第四次崩潰等上。當崩潰時,顯示錯誤「您的活動正在運行?」。我用處理程序和單獨的UI線程嘗試過,但沒有成功。我正在嘗試這個。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(); 
    } 

這是非常奇怪的,它崩潰只在第二次

編輯..

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

什麼叫意圖上下文傳遞,你的情況檢查任何檢查的情況下你有「上下文」變量?你不是在重置它嗎? –

+0

這是主要的活動環境,我在這裏使用Fragments。 – abhishek

+0

請在此處提供destroyGpsDialog() –

回答

1

在如果要是上下文傳遞給GPsLocator活動與否而對於活動

+0

我已經傳遞了上下文。請檢查以上,我已添加一個片段。 – abhishek

+0

試試這個,私人GpsLocator(CheckinNativeActivity上下文){this.observers = new ArrayList (); this.removalList = new ArrayList (); } 公共靜態GpsLocator getGpsLocator(CheckinNativeActivity CXT){ 如果(參照== NULL) REF =新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