如果我回到活动,如何重新开始倒计时?

时间:2017-01-26 10:02:51

标签: android countdown back restart countdowntimer

我有一个入口布局需要看3秒钟。如果我启动该应用程序它会保持3秒并且activity更改,那没关系,但问题是,如果我在使用应用程序时通过智能手机的背压回到此activity { {1}} 3秒后无法更改。我是新人,无法找到问题?请你帮助我好吗 ?谢谢

avtivity

2 个答案:

答案 0 :(得分:1)

onCreate将仅在您的活动创建时首次执行,但当您返回此活动时,onCreate将不会再次执行。

override中的onstart Activity方法,并将您的代码移到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();
}

改进:在课堂中声明您的观点并在onCreate中初始化它们,而不是每次在计时器匿名课程中将其内化

答案 1 :(得分:0)

将您的CountDownTimer内部onStart()方法移至与此类似的内容:

    @Override
    public void onStart() {
        super.onStart();

        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();
    }