teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード記載

2016/01/31 16:22

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -4,11 +4,16 @@
4
4
 
5
5
  という動きになっているからです。これを解消するためには、Runnableを変数に保持しておいて、止めるときにHandlerの`removeCallbacks(Runnable)`にそれを渡す必要があるのではないでしょうか。
6
6
 
7
+ まどろっこしいのでコード全部書き直しました。
7
8
  ```java
8
9
  protected void onCreate(Bundle savedInstanceState) {
9
- //省略
10
+ super.onCreate(savedInstanceState);
11
+ setContentView(R.layout.activity_main);
12
+ manager = (SensorManager)this.getSystemService(SENSOR_SERVICE);
13
+ accSensor = this.manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
14
+ Button start_btn = (Button) findViewById(R.id.button);
15
+ Button stop_btn = (Button) findViewById(R.id.button2);
10
16
 
11
- //実行するRunnableを変数に保持
12
17
  final Runnable r = new Runnable(){
13
18
  @Override
14
19
  public void run() {
@@ -17,7 +22,12 @@
17
22
  }
18
23
  };
19
24
 
25
+ start_btn.setOnClickListener(new View.OnClickListener() {
26
+ @Override
27
+ public void onClick(View v) {
20
- //省略
28
+ mHandler.postDelayed(r ,2000); // 2秒後に処理
29
+ }
30
+ });
21
31
 
22
32
  stop_btn.setOnClickListener(new View.OnClickListener() {
23
33
  @Override
@@ -27,5 +37,10 @@
27
37
  button_flag = 0;
28
38
  }
29
39
  });
40
+
41
+ mX = (TextView)this.findViewById(R.id.textView);
42
+ mY = (TextView)this.findViewById(R.id.textView4);
43
+ mZ = (TextView)this.findViewById(R.id.textView6);
44
+
30
45
  }
31
46
  ```

1

コメントを受け修正

2016/01/31 16:22

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  //省略
10
10
 
11
11
  //実行するRunnableを変数に保持
12
- Runnable r = new Runnable(){
12
+ final Runnable r = new Runnable(){
13
13
  @Override
14
14
  public void run() {
15
15
  button_flag = 1;