Hej,
Właśnie przerobiłam swój program tak aby progress bar działa w tle. Użyłam Intent Serviców aby progress bar dział w tle. Aplikacja działa poprawnie , teraz chciałabym zrobić ,żeby po zakończeniu jak progress bar skończy swoją wartość, ponownie znów się odliczało. Czy użyć Service zamiast IntentService.?

public class CardDetailsActivity extends AppCompatActivity {

    private String intervalTotpEncrypt;
    private ProgressBar progressBar;
    private TextView secondTimeTextView;
    private int interval;
    protected String cardNameDecrypt, intervalTotpDecrypt;

    public final static int EMIT_DELAY_MS = 1000;
    public static final String BROADCAST_EVENT_NAME = "broadcast-event-name";

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


        Default app = (Default) getApplicationContext();
        keyString = app.getUuidString();
        Bundle extras = getIntent().getExtras();

        Typeface custom_fonts = Typeface.createFromAsset(getAssets(), "fonts/OpenSans-Regular.ttf");
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

        progressBar = (ProgressBar) findViewById(R.id.refershProgrss);
        cardNameEncrypt = extras.getString("cardName");

        intervalTotpEncrypt = extras.getString("intervalTotp");
     
        try {
            intervalTotpDecrypt = AesCrypt.decrypt(keyString, intervalTotpEncrypt);
        } catch (GeneralSecurityException e) {
            e.printStackTrace();
        }


        otpString = path3Decrypt + getCode;
        generateQrString = Cryptography.xorHex(otpString);
        interval = Integer.parseInt(intervalTotpDecrypt);

        progressBar.setMax(interval);
        progressBar.setProgress(interval);

        LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver,
                new IntentFilter(BROADCAST_EVENT_NAME));

        Intent intent = new Intent(this, ProgressBarService.class);
        intent.putExtra("interval", interval);
        startService(intent);
        setSupportActionBar(toolbar);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
    }

    private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.hasExtra(ProgressBarService.KEY_EXTRA_PROGRESS)) {
                progressBar.setProgress(intent.getIntExtra(ProgressBarService.KEY_EXTRA_PROGRESS, 0));
                secondTimeTextView.setText("" + intent.getIntExtra(ProgressBarService.KEY_EXTRA_PROGRESS, 0));
            }
        }
    };
    
}

public class ProgressBarService extends IntentService {
    private int interval;
    private static final String TAG = ProgressBarService.class.getSimpleName();
    public static final String KEY_EXTRA_PROGRESS = "progress";

    public ProgressBarService() {
        super(ProgressBarService.class.getSimpleName());
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        if (intent != null) {

            interval = intent.getIntExtra("interval", 0);
            Intent broadcastIntent = new Intent(CardDetailsActivity.BROADCAST_EVENT_NAME);
            LocalBroadcastManager.getInstance(this).sendBroadcast(broadcastIntent);
            for (int i =  interval; i >= 0; i--) {

                broadcastIntent = new Intent(CardDetailsActivity.BROADCAST_EVENT_NAME);
                broadcastIntent.putExtra(KEY_EXTRA_PROGRESS, i);
                LocalBroadcastManager.getInstance(this).sendBroadcast(broadcastIntent);
                SystemClock.sleep(CardDetailsActivity.EMIT_DELAY_MS);

            }
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }
}