У меня есть счетчик с круглым индикатором выполнения. Когда счетчик запускается, индикатор выполнения также начинается со значения счетчика, но когда он работает в фоновом режиме и снова открывает приложение ... круговой индикатор выполнения начинается с 0, но счетчик работает правильно по значению. В этом случае мне нужно чтобы индикатор выполнения не начинался с 0.
вот мой код:
public class MainActivity extends AppCompatActivity {
public int counter;
Button button;
public boolean isrunningtime = false;
TextView textView;
private ProgressBar progressBar;
long millisUntilFinished = 0;
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
sharedPreferences = getSharedPreferences("my", MODE_PRIVATE);
editor = sharedPreferences.edit();
progressBar = findViewById(R.id.progressBar);
startService(new Intent(this, BroadcastService.class));
Log.i("Tag", "Started service");
}
private BroadcastReceiver br = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateGUI(intent); // or whatever method used to update your GUI fields
}
};
@Override
public void onResume() {
super.onResume();
registerReceiver(br, new IntentFilter(BroadcastService.COUNTDOWN_BR));
Log.i("Tag", "Registered broacast receiver");
}
@Override
public void onPause() {
super.onPause();
unregisterReceiver(br);
}
@Override
public void onStop() {
try {
unregisterReceiver(br);
} catch (Exception e) {
// Receiver was probably already stopped in onPause()
}
super.onStop();
}
@Override
public void onDestroy() {
stopService(new Intent(this, BroadcastService.class));
Log.i("Tag", "Stopped service");
super.onDestroy();
}
private void updateGUI(Intent intent) {
if (intent.getExtras() != null) {
millisUntilFinished = intent.getLongExtra("countdown", 0);
Log.i("Tag", "Countdown seconds remaining: " + millisUntilFinished / 1000);
progressBar.setProgress((int) (millisUntilFinished / 1000));
Log.i("progress", "" + (int) (millisUntilFinished / 1000));
textView.setText("" + millisUntilFinished / 1000);
}
}
}