Działanie Progress Bara przez cały czas

0

Mam malutki problem otóż mam w jednej aktywności progress bar. Otwieram go następnie gdy wychodzę z podanej aktywności i wracam odliczanie znów następuje. Pytanie jak aby odliczanie było cały czas.

0

pokaz kod

0
public class CardDetailsActivity extends AppCompatActivity {
    @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(newBase);
    }

    private ProgressBar progressBar;
    private TextView secondTimeTextView;
    private int interval;
    protected String cardName, intervalTotp, path3Decoded, getCode, uuidDevice, otpString, generateNewString, generateQrString, OtpString, NewXorString;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_card_details);

        Typeface custom_fonts = Typeface.createFromAsset(getAssets(), "fonts/OpenSans-Regular.ttf");
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setNavigationIcon(R.drawable.ic_restart);
        progressBar = (ProgressBar) findViewById(R.id.refershProgrss);

        cardName = getIntent().getStringExtra("cardName");
        intervalTotp = getIntent().getStringExtra("intervalTotp");
        path3Decoded = getIntent().getStringExtra("path");
        otpString = getIntent().getStringExtra("otp");

        Base32 code = new Base32();
        byte secret[] = code.decode(otpString);

        try {
            getCode = OtpAlgorithm.generateTotp(secret, intervalTotp);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        }

        OtpString = path3Decoded + getCode;
        generateQrString = Cryptography.xorHex(OtpString);
        interval = Integer.parseInt(intervalTotp);

        TextView titleTextView = (TextView) findViewById(R.id.toolbar_title);
        titleTextView.setText(cardName);

        TextView subtitleTextView = (TextView) findViewById(R.id.subtitle_text);
        TextView second_text = (TextView) findViewById(R.id.second_text);
        TextView instantTextView = (TextView) findViewById(R.id.instant_text);
        instantTextView.setTypeface(custom_fonts);
        titleTextView.setTypeface(custom_fonts);

        TextView generationCardTextView = (TextView) findViewById(R.id.generationCardText);
        generationCardTextView.setTypeface(custom_fonts);


        secondTimeTextView = (TextView) findViewById(R.id.secondTimeTextView);
        secondTimeTextView.setTypeface(custom_fonts);

        TextView dotTextView = (TextView) findViewById(R.id.dotTextView);
        dotTextView.setTypeface(custom_fonts);
        subtitleTextView.setTypeface(custom_fonts);
        second_text.setTypeface(custom_fonts);
        setSupportActionBar(toolbar);

        UpdateQrCodeString(generateQrString);
        new UpdateQrCode().execute();

    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.card:
                Intent intent = new Intent(this, MainActivity.class);
                startActivity(intent);
                return true;
        }
        return super.onOptionsItemSelected(item);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.card, menu);
        return super.onCreateOptionsMenu(menu);
    }


    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(otpString, path3Decoded, intervalTotp);

            } catch (InvalidKeyException e) {
                e.printStackTrace();
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }

            generateNewString = Cryptography.xorHex(NewXorString);


            UpdateQrCodeString(generateNewString);
            new UpdateQrCode().execute();

        }
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1