2017-01-26 4 views
1

私は3秒間見る必要がある入り口のレイアウトがあります。私がアプリを起動した場合、3秒後にactivityの変更がありますが、それは問題ありません。は3秒後に変更されませんが、activityスマートフォンのバックプレスを介してこのアプリに戻ります。私は新しく問題を見つけることができませんでしたか?手伝っていただけませんか ?おかげアクティビティに戻るとカウントダウンタイマーを再起動するにはどうすればいいですか?

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

コードで再起動する方法が分かっているなら、 'onResume'メソッドの中に入れてください – Roljhon

答えて

1

onCreateは、あなたの活動が作成されたときに、最初に実行されますが、あなたがこの活動に戻ってきたときにonCreateが再び実行されることはありません。

のでoverrideonstartActivity方法及び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ではなく、あなたのタイマーで毎回それらを内部の匿名クラス

0

あなたのCountDownTimeronStart()の中に入れてください:

@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(); 
    } 
関連する問題