Witam,
Zaimplementowałam progress bar który działa w tle, działa to poprawnie, natomiast nie mam pojęcia jak zrobić, żeby odliczanie tego progress bara było wznowione.
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(1000);
}
}
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
public class CardDetailsActivity extends AppCompatActivity {
private String intervalTotpEncrypt;
private ProgressBar progressBar;
private TextView secondTimeTextView;
private int interval;
protected String cardNameDecrypt, intervalTotpDecrypt;
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();
}
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));
}
}
};
}