回答編集履歴

8

繰り返し追加

2022/11/28 15:45

投稿

jimbe
jimbe

スコア12696

test 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 削除

2022/11/28 15:32

投稿

jimbe
jimbe

スコア12696

test 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

コード追加

2022/11/28 15:31

投稿

jimbe
jimbe

スコア12696

test CHANGED
@@ -3,3 +3,74 @@
3
3
 
4
4
  ボタン操作による一時停止等は以下の記事がありました。
5
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

修正

2022/11/28 12:51

投稿

jimbe
jimbe

スコア12696

test 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

修正

2022/11/28 11:11

投稿

jimbe
jimbe

スコア12696

test 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

修正

2022/11/28 11:11

投稿

jimbe
jimbe

スコア12696

test 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

修正

2022/11/28 11:09

投稿

jimbe
jimbe

スコア12696

test 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

修正

2022/11/28 11:09

投稿

jimbe
jimbe

スコア12696

test CHANGED
@@ -1,3 +1,4 @@
1
1
  CountDownTimer#cancel は途中で終わらせるのあって、一時停止ではありません。
2
+ onResume で何をしているのかを参考にしてください。
2
3
 
3
4
  [カウントダウンタイマーを、1つのボタンで開始、一時停止、リセットする。](http://nandenogori.blogspot.com/2015/03/android.html)