I have an entrance layout which needs to be seen for 3 seconds. If I start the app it stays 3 seconds and activity
changes, that's okay but the problem is, if I come back to this activity
via backpress of smartphone while I am using the app avtivity
doesn't change after 3 seconds. I am new and couldn't find out problem ? Could you please help me ? Thanks
public class A1CoverPage extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a1cover_page);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.a0action_bar);
new CountDownTimer(3000, 1000) {
public void onTick(long millisUntilFinished) {
EditText mTextField = (EditText) findViewById(R.id.editText);
mTextField.setText(" Loading... ");
ImageView mImageView = (ImageView) findViewById(R.id.imageView);
mImageView.setImageResource(R.drawable.amblem);
}
public void onFinish() {
Intent intent = new Intent(A1CoverPage.this, A2ExperimentCalibration.class);
startActivity(intent);
}
}.start();
}
onCreate
will be executed only first time , when your activity is created , but when you come back to this activity then onCreate
will not be executed again.
so override
onstart
method in Activity
and move your code inside onstart
EditText mTextField;
ImageView mImageView;
// ^^^^ declare views references
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a1cover_page);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.a0action_bar);
mTextField = (EditText) findViewById(R.id.editText);
mImageView = (ImageView) findViewById(R.id.imageView);
// ^^^ initialize views
}
@Override
protected void onStart() {
super.onStart();
new CountDownTimer(3000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText(" Loading... ");
mImageView.setImageResource(R.drawable.amblem);
}
public void onFinish() {
Intent intent = new Intent(A1CoverPage.this, A2ExperimentCalibration.class);
startActivity(intent);
}
}.start();
}
Improvements : Declare your view in class and initialize them in onCreate
instead of internalizing them everytime in your timer anonymous class