2017-06-29 2 views
0

J'ai un problème avec l'état actuel de la sauvegarde dans la barre de progression dans SharedPreferences. c'est mon code. Problème quand aller avec cette activité et ensuite sortir avec l'activité agian, la barre de progression ne compte pas l'état avec le séjour perméable.Impossible de sauvegarder la barre de progression de l'état actuel dans la préférence Préférence partagée

private UpdateQrCode updateQrCode; 
    SharedPreferences sharedpreferences; 
    private static final String TIME = "Time"; 
méthode

onCreate sorcière ont

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
... 

sharedpreferences = getSharedPreferences(mypreference, Context.MODE_PRIVATE); 

if (sharedpreferences.contains(Time)) { 
      int currentInterval = sharedpreferences.getInt(TIME, 0); 
      progressBar.setMax(currentInterval); 
      progressBar.setProgress(currentInterval); 
     } else { 
      interval = Integer.parseInt(intervalTotpDecrypt); 
     } 
} 

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     if (updateQrCode != null) { 
      updateQrCode.cancel(true); 
     } 
    } 

// cette AsyncTask de classe avec la mise à jour barre de progression

private class UpdateQrCode extends AsyncTask<Void, Integer, Integer> { 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      progressBar.setMax(interval); 
     } 

     @Override 
     protected void onProgressUpdate(Integer... values) { 
      super.onProgressUpdate(values); 
      progressBar.setProgress(values[0]); 
      secondTimeTextView.setText(String.valueOf(values[0])); 
     } 

     @Override 
     protected Integer doInBackground(Void... params) { 

      for (int i = interval; i >= 0; i--) { 
       publishProgress(i); 

       try { 
        Thread.sleep(1000); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
      } 
      return null; 
     } 


     @Override 
     protected void onPostExecute(Integer integer) { 
      super.onPostExecute(integer); 


      try { 
       NewXorString = generateQrCodeString(otpDecrypt, path3Decrypt, intervalTotpDecrypt); 
      } catch (InvalidKeyException e) { 
       e.printStackTrace(); 
      } catch (NoSuchAlgorithmException e) { 
       e.printStackTrace(); 
      } 

      generateNewString = Cryptography.xorHex(NewXorString); 

      UpdateQrCodeString(generateNewString); 
      updateQrCode.execute(); 
     } 

     @Override 
     protected void onCancelled() { 
      super.onCancelled(); 
      updateQrCode.cancel(true); 
     } 
    } 

//method with save to sharedPreference 

public void saveStateProgressBar() { 
     SharedPreferences.Editor editor = sharedpreferences.edit(); 
     editor.putInt(TIME, interval); 
     editor.commit(); 
    } 

Répondre

0

utilisez-vous Editor pour stocker des valeurs partagées dans les préférences? par exemple

SharedPreferences.Editor editor = prefs.edit(); 
editor.putString("progress", loadingProgress); 
editor.commit(); 
+0

oui j'utilise SharedPreferences.Editor –