ad.1 I read that I could use a BroadcastReceiver or Serializable - but I don't know how exactly use this in my code. Could someone help me to resolve this situation?
Below, I show my code: (var PPowtorzenia - it's variable which save my info about repeats and save this into SharedPref.)
public class biceps_cw1 extends ActionBarActivity { public static final String MMY_PREFS_NAME = "MMyPrefsFile"; EditText PPowtorzenia, PPowtorzenia1, PPowtorzenia2, PPowtorzenia00,PPowtorzenia11; EditText PPowtorzenia22, PPowtorzenia3, PPowtorzenia33; Button btnStart, btnStop; TextView textViewTime;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_biceps_cw1);
btnStart = (Button) findViewById(R.id.btnStart);
btnStop = (Button) findViewById(R.id.btnStop);
textViewTime = (TextView) findViewById(R.id.textViewTime);
textViewTime.setText("00:01:30");
final CounterClass timer = new CounterClass(90000, 1000); //9000 - ilosc milisekund(1m30s)
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.start();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
}
});
PPowtorzenia = (EditText) findViewById(R.id.mmessage);
PPowtorzenia00 = (EditText) findViewById(R.id.mmessage00);
PPowtorzenia1 = (EditText) findViewById(R.id.mmessage1);
PPowtorzenia2 = (EditText) findViewById(R.id.mmessage2);
PPowtorzenia3 = (EditText) findViewById(R.id.mmessage3);
PPowtorzenia11 = (EditText) findViewById(R.id.mmessage11);
PPowtorzenia22 = (EditText) findViewById(R.id.mmessage22);
PPowtorzenia33 = (EditText) findViewById(R.id.mmessage33);
SharedPreferences ssharedPreferences = getApplication().getSharedPreferences(MMY_PREFS_NAME, MODE_PRIVATE);
SharedPreferences ssharedPreferences1 = getApplication().getSharedPreferences(MMY_PREFS_NAME, MODE_PRIVATE);
SharedPreferences ssharedPreferences00 = getApplication().getSharedPreferences(MMY_PREFS_NAME, MODE_PRIVATE);
SharedPreferences ssharedPreferences11 = getApplication().getSharedPreferences(MMY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences2 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences3 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences22 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences33 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String nnumberValue = ssharedPreferences.getString("nnumberValue", "");
String nnumberValue1 = ssharedPreferences1.getString("nnumberValue1", "");
String nnumberValue00 = ssharedPreferences00.getString("nnumberValue00", "");
String nnumberValue11 = ssharedPreferences11.getString("nnumberValue11", "");
String nnumberValue2 = ssharedPreferences11.getString("nnumberValue2", "");
String nnumberValue3 = ssharedPreferences11.getString("nnumberValue3", "");
String nnumberValue22 = ssharedPreferences11.getString("nnumberValue22", "");
String nnumberValue33 = ssharedPreferences11.getString("nnumberValue33", "");
PPowtorzenia.setText( nnumberValue );
PPowtorzenia1.setText( nnumberValue1 );
PPowtorzenia00.setText( nnumberValue00 );
PPowtorzenia11.setText( nnumberValue11 );
PPowtorzenia2.setText( nnumberValue2 );
PPowtorzenia3.setText( nnumberValue3 );
PPowtorzenia22.setText( nnumberValue22 );
PPowtorzenia33.setText( nnumberValue33 );
}
public class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
long millis = millisUntilFinished;
String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
System.out.println(hms);
textViewTime.setText(hms);
}
@Override
public void onFinish() {
textViewTime.setText("Completed.");
}
}
public void ssaveButton(View view) {
Intent b = new Intent(this,biceps_cw1.class);
String uuserNumber = PPowtorzenia.getText().toString();
String uuserNumber1 = PPowtorzenia1.getText().toString();
String uuserNumber00 = PPowtorzenia00.getText().toString();
String uuserNumber11 = PPowtorzenia11.getText().toString();
String uuserNumber2 = PPowtorzenia2.getText().toString();
String uuserNumber3 = PPowtorzenia3.getText().toString();
String uuserNumber22 = PPowtorzenia22.getText().toString();
String uuserNumber33 = PPowtorzenia33.getText().toString();
b.putExtra("PPowtorzenia",uuserNumber);
b.putExtra("PPowtorzenia1",uuserNumber1);
b.putExtra("PPowtorzenia00",uuserNumber00);
b.putExtra("PPowtorzenia11",uuserNumber11);
b.putExtra("PPowtorzenia2",uuserNumber2);
b.putExtra("PPowtorzenia22",uuserNumber22);
b.putExtra("PPowtorzenia3",uuserNumber3);
b.putExtra("PPowtorzenia33",uuserNumber33);
if(uuserNumber.equals("")){
Toast.makeText(this,"Please enter a number of your series", Toast.LENGTH_SHORT).show();
return;
}
SharedPreferences ssharedPreferences = getApplication().getSharedPreferences(MMY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences1 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences00 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences11 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences2 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
//SharedPreferences sharedPreferences22 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
//SharedPreferences sharedPreferences3 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
// SharedPreferences sharedPreferences33 = getApplication().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
SharedPreferences.Editor editorb = ssharedPreferences.edit();
editorb.putString("nnumberValue", PPowtorzenia.getText().toString());
editorb.putString("nnumberValue1", PPowtorzenia1.getText().toString());
editorb.putString("nnumberValue00", PPowtorzenia00.getText().toString());
editorb.putString("nnumberValue11", PPowtorzenia11.getText().toString());
editorb.putString("nnumberValue22", PPowtorzenia22.getText().toString());
editorb.putString("nnumberValue33", PPowtorzenia33.getText().toString());
editorb.putString("nnumberValue2", PPowtorzenia2.getText().toString());
editorb.putString("nnumberValue3", PPowtorzenia3.getText().toString());
editorb.commit();
startActivity(b);
}
}
Not pretty sure about your purpose. Do you mean you want to keep a countdown timer alive no matter whether the activity is shown on UI? If so, it is not advised to keep timer in activity. A better way is to implement that in background component, such as a service or a thread. In this way, the timer is irrelevant to activity lifecycle. The work of activity is only to display the result.