回答編集履歴
8
繰り返し追加
    
        answer	
    CHANGED
    
    | 
         @@ -45,6 +45,9 @@ 
     | 
|
| 
       45 
45 
     | 
    
         
             
                  @Override
         
     | 
| 
       46 
46 
     | 
    
         
             
                  public void onFinish() {
         
     | 
| 
       47 
47 
     | 
    
         
             
                    stopCountDown();
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                    alltime = 10*1000;
         
     | 
| 
      
 50 
     | 
    
         
            +
                    startCountDown();
         
     | 
| 
       48 
51 
     | 
    
         
             
                    //Intent intent = new Intent(MainActivity.this, MainActivity.class);
         
     | 
| 
       49 
52 
     | 
    
         
             
                    //startActivity(intent);
         
     | 
| 
       50 
53 
     | 
    
         
             
                  }
         
     | 
7
package 削除
    
        answer	
    CHANGED
    
    | 
         @@ -6,8 +6,6 @@ 
     | 
|
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            ---
         
     | 
| 
       8 
8 
     | 
    
         
             
            ```java
         
     | 
| 
       9 
     | 
    
         
            -
            package com.teratail.q_nfrgy9z230kb30;
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
9 
     | 
    
         
             
            import androidx.appcompat.app.AppCompatActivity;
         
     | 
| 
       12 
10 
     | 
    
         | 
| 
       13 
11 
     | 
    
         
             
            //import android.content.Intent;
         
     | 
6
コード追加
    
        answer	
    CHANGED
    
    | 
         @@ -2,4 +2,75 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            **onResume で再開の為に何をしているのか**を参考にしてください。
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            ボタン操作による一時停止等は以下の記事がありました。
         
     | 
| 
       5 
     | 
    
         
            -
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     | 
| 
      
 5 
     | 
    
         
            +
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            ---
         
     | 
| 
      
 8 
     | 
    
         
            +
            ```java
         
     | 
| 
      
 9 
     | 
    
         
            +
            package com.teratail.q_nfrgy9z230kb30;
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            import androidx.appcompat.app.AppCompatActivity;
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            //import android.content.Intent;
         
     | 
| 
      
 14 
     | 
    
         
            +
            import android.os.Bundle;
         
     | 
| 
      
 15 
     | 
    
         
            +
            import android.os.CountDownTimer;
         
     | 
| 
      
 16 
     | 
    
         
            +
            import android.widget.Button;
         
     | 
| 
      
 17 
     | 
    
         
            +
            import android.widget.TextView;
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            public class MainActivity extends AppCompatActivity {
         
     | 
| 
      
 20 
     | 
    
         
            +
              private CountDownTimer countDownTimer; // タイマー本体
         
     | 
| 
      
 21 
     | 
    
         
            +
              private long alltime = 10*1000; // タイマー終了時間[ms]
         
     | 
| 
      
 22 
     | 
    
         
            +
              private TextView textView; // 残り時間表示
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              @Override
         
     | 
| 
      
 25 
     | 
    
         
            +
              protected void onCreate(Bundle savedInstanceState) {
         
     | 
| 
      
 26 
     | 
    
         
            +
                super.onCreate(savedInstanceState);
         
     | 
| 
      
 27 
     | 
    
         
            +
                setContentView(R.layout.activity_main);
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                textView = findViewById(R.id.tv);
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                Button start = findViewById(R.id.start);
         
     | 
| 
      
 32 
     | 
    
         
            +
                start.setOnClickListener(v -> startCountDown());
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                Button stop = findViewById(R.id.stop);
         
     | 
| 
      
 35 
     | 
    
         
            +
                stop.setOnClickListener(v -> stopCountDown());
         
     | 
| 
      
 36 
     | 
    
         
            +
              }
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
              private void startCountDown() {
         
     | 
| 
      
 39 
     | 
    
         
            +
                if(countDownTimer != null) return;
         
     | 
| 
      
 40 
     | 
    
         
            +
                countDownTimer = new CountDownTimer(alltime, 100) {
         
     | 
| 
      
 41 
     | 
    
         
            +
                  @Override
         
     | 
| 
      
 42 
     | 
    
         
            +
                  public void onTick(long millisUntilFinished) {
         
     | 
| 
      
 43 
     | 
    
         
            +
                    alltime = millisUntilFinished;
         
     | 
| 
      
 44 
     | 
    
         
            +
                    int time = (int)millisUntilFinished / 1000;
         
     | 
| 
      
 45 
     | 
    
         
            +
                    textView.setText("あと" + time + "秒");
         
     | 
| 
      
 46 
     | 
    
         
            +
                  }
         
     | 
| 
      
 47 
     | 
    
         
            +
                  @Override
         
     | 
| 
      
 48 
     | 
    
         
            +
                  public void onFinish() {
         
     | 
| 
      
 49 
     | 
    
         
            +
                    stopCountDown();
         
     | 
| 
      
 50 
     | 
    
         
            +
                    //Intent intent = new Intent(MainActivity.this, MainActivity.class);
         
     | 
| 
      
 51 
     | 
    
         
            +
                    //startActivity(intent);
         
     | 
| 
      
 52 
     | 
    
         
            +
                  }
         
     | 
| 
      
 53 
     | 
    
         
            +
                }.start();
         
     | 
| 
      
 54 
     | 
    
         
            +
              }
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
              private void stopCountDown() {
         
     | 
| 
      
 57 
     | 
    
         
            +
                if(countDownTimer == null) return;
         
     | 
| 
      
 58 
     | 
    
         
            +
                countDownTimer.cancel();
         
     | 
| 
      
 59 
     | 
    
         
            +
                countDownTimer = null;
         
     | 
| 
      
 60 
     | 
    
         
            +
              }
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
              // 画面非表示に実行 ////////////////////////////////
         
     | 
| 
      
 63 
     | 
    
         
            +
              @Override
         
     | 
| 
      
 64 
     | 
    
         
            +
              protected void onPause() {
         
     | 
| 
      
 65 
     | 
    
         
            +
                super.onPause();
         
     | 
| 
      
 66 
     | 
    
         
            +
                stopCountDown();
         
     | 
| 
      
 67 
     | 
    
         
            +
              }
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
      
 69 
     | 
    
         
            +
              // 画面再表示に実行 //////////////////////////////////
         
     | 
| 
      
 70 
     | 
    
         
            +
              @Override
         
     | 
| 
      
 71 
     | 
    
         
            +
              protected void onResume() {
         
     | 
| 
      
 72 
     | 
    
         
            +
                super.onResume();
         
     | 
| 
      
 73 
     | 
    
         
            +
                startCountDown();
         
     | 
| 
      
 74 
     | 
    
         
            +
              }
         
     | 
| 
      
 75 
     | 
    
         
            +
            }
         
     | 
| 
      
 76 
     | 
    
         
            +
            ```
         
     | 
5
修正
    
        answer	
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            CountDownTimer#cancel は途中で終わらせるのあって、一時停止ではありません。
         
     | 
| 
      
 1 
     | 
    
         
            +
            CountDownTimer#cancel は途中で終わらせるのであって、一時停止ではありません。
         
     | 
| 
       2 
     | 
    
         
            -
            onResume で再開の為に何をしているのかを参考にしてください。
         
     | 
| 
      
 2 
     | 
    
         
            +
            **onResume で再開の為に何をしているのか**を参考にしてください。
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            ボタン操作による一時停止等は以下の記事がありました。
         
     | 
| 
       5 
5 
     | 
    
         
             
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     | 
4
修正
    
        answer	
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            CountDownTimer#cancel は途中で終わらせるのあって、一時停止ではありません。
         
     | 
| 
       2 
     | 
    
         
            -
            onResume で再開 
     | 
| 
      
 2 
     | 
    
         
            +
            onResume で再開の為に何をしているのかを参考にしてください。
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            ボタン操作による一時停止等は以下の記事がありました。
         
     | 
| 
       5 
5 
     | 
    
         
             
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     | 
3
修正
    
        answer	
    CHANGED
    
    | 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            CountDownTimer#cancel は途中で終わらせるのあって、一時停止ではありません。
         
     | 
| 
       2 
     | 
    
         
            -
            onResume で何をしているのかを参考にしてください。
         
     | 
| 
      
 2 
     | 
    
         
            +
            onResume で再開時の為に何をしているのかを参考にしてください。
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            ボタン操作による一時停止等は以下の記事がありました。
         
     | 
| 
       5 
5 
     | 
    
         
             
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     | 
2
修正
    
        answer	
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            CountDownTimer#cancel は途中で終わらせるのあって、一時停止ではありません。
         
     | 
| 
       2 
2 
     | 
    
         
             
            onResume で何をしているのかを参考にしてください。
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
      
 4 
     | 
    
         
            +
            ボタン操作による一時停止等は以下の記事がありました。
         
     | 
| 
       4 
5 
     | 
    
         
             
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     | 
1
修正
    
        answer	
    CHANGED
    
    | 
         @@ -1,3 +1,4 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            CountDownTimer#cancel は途中で終わらせるのあって、一時停止ではありません。
         
     | 
| 
      
 2 
     | 
    
         
            +
            onResume で何をしているのかを参考にしてください。
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)
         
     |