2017-01-06 2 views
0

bitte jemand helfen, ich habe abzumelden Methode sweetalertdialog lib und diese Abmelde genannt in NavigationsleisteIntent manchmal nicht ohne Fehler arbeiten

private void logout() { 

    SweetAlertDialog nDialog = new SweetAlertDialog(Master_Menu.this, SweetAlertDialog.CUSTOM_IMAGE_TYPE); 

    nDialog.setTitleText("Alert"); 
    nDialog.setContentText("Are you sure you want to logout?"); 
    nDialog.setConfirmText("Yes"); 
    nDialog.setCancelText("No"); 
    nDialog.setCustomImage(R.drawable.ic_launcher); 

    nDialog.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { 
     @Override 
     public void onClick(SweetAlertDialog nDialog) { 
      //Getting out sharedpreferences 
      SharedPreferences preferences = getSharedPreferences(Config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 
      //Getting editor 
      SharedPreferences.Editor editor = preferences.edit(); 
      String level = preferences.getString(Config.LEVEL_USER,"null"); 

      //Puting the value false for loggedin 
      editor.putBoolean(Config.LOGGEDIN_SHARED_PREF, false); 

      //Stop the Service 
      if (level.equalsIgnoreCase("KRN")) { 
       stopService(new Intent(getApplicationContext(), getLocation.class)); 
       Log.d("Service", "STOP"); 
      } 

      //Putting blank value to email 
      editor.putString(Config.EMAIL_SHARED_PREF, ""); 
      editor.putString(Config.ID_SHARED_PREF, ""); 
      editor.putString(Config.TOKEN_SHARED_PREF, ""); 
      editor.putString(Config.LEVEL_USER,""); 

      //Saving the sharedpreferences 
      editor.commit(); 

      nDialog.dismiss(); 

      //Starting login activity 
      Intent intent = new Intent(Master_Menu.this, LoginActivity.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 
     } 
    }); 

    nDialog.setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() { 
     @Override 
     public void onClick(SweetAlertDialog nDialog) { 
      nDialog.cancel(); 
     } 
    }); 
    nDialog.show(); 

} 

manchmal Absicht loginActivity mit nicht funktioniert, aber Theres kein Problem mit bestätigen Hörer klicken, weil alle gemeinsamen Vorliebe Änderung hat, nachdem ich bestätigen klicken Sie (die Bestätigungsfunktion arbeitet Bedeutung)

das ist, was ich schon versuchen:

  1. ich denke, 2 intention in 1 methode vielleicht problem (stopservice und startaktivität) aber nachdem ich den stop service kommentieren das problem immer noch passieren.
  2. Ich weiß nicht Unterschiede über getapplicationcontext() und class.this in Intent, also versuche ich nur von class.this zu getapplicationcontext() zu ändern, weil die meisten meiner Absicht in diesem Projekt getapplicationcontext verwenden, aber das Problem immer noch passiert.

Zusatzinfo:

Größe meines Projektes (nach sauberen Projekt) um 400MB

und das ist mein lib

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
compile files('libs/PhotoUtil.jar') 
compile files('libs/GenAsync.1.2.jar') 
compile files('libs/KGJsonConverter.jar') 
compile 'com.android.support:multidex:1.0.0' 
compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.android.support:design:24.2.1' 
compile 'com.android.volley:volley:1.0.0' 
compile 'com.wdullaer:materialdatetimepicker:2.3.0' 
compile 'com.google.code.gson:gson:2.6.2' 
compile 'com.github.amigold.fundapter:library:1.0' 
compile 'com.weiwangcn.betterspinner:library-material:1.1.0' 
compile 'com.android.support:support-v4:24.2.1' 
compile 'me.spark:submitbutton:1.0.1' 
compile 'com.jaredrummler:material-spinner:1.1.0' 
compile 'com.android.support:cardview-v7:24.2.1' 
compile 'cn.pedant.sweetalert:library:1.3' 
compile 'com.github.PhilJay:MPAndroidChart:v2.1.6' 
compile 'com.github.paolorotolo:appintro:4.0.0' 
compile 'me.wangyuwei:ParticleView:1.0.4' 
compile 'com.google.android.gms:play-services:8.4.0' 

}

Antwort

0

Versuchen nDialog.dismiss(); auf das sich bewegende letzte Zeile Ihrer setConfirmClickListener. Sie könnten eine Race-Bedingung erstellen, bei der der Dialog möglicherweise geschlossen und entfernt wird, bevor die neue Aktivität gestartet werden kann.

+0

versuchen Sie das bereits und versuchen Sie, nDialog.dismiss() zu entfernen; Auch aber das Problem immer noch da –

Verwandte Themen