Androidアプリケーションについて質問があります。後でゲームを作りたいのですが、現在、理解する必要のあるクラスや機能を試しています。現時点では、スレッドを適切に使用する方法を把握しようとしていますが、ボタンに触れると、アプリケーションは「強制終了」になります。
このテストアプリケーションの場合、画面に表示されるのは1つのTextViewと1つのボタンだけです。ボタンを押すと、threadStart()が呼び出されます。(xmlのonClick)そして、私がやりたいのは、変数値を1増やすスレッドを作成し、UIスレッドに報告して、新しい値でテキストビューを更新することです。
誰かが私がこの小さなコードで何を間違っているのかを見ることができますか?
package com.weldeborn.tc;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;
public class ThreadCounter extends Activity {
TextView txtCounter1;
int value=0;
final Handler mHandler = new Handler();
final Runnable mUpdateResults = new Runnable() {
public void run() {
updateResult();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtCounter1 = (TextView) findViewById(R.id.counter1);
}
protected void threadStart() {
Thread t = new Thread() {
public void run() {
doSomething();
mHandler.post(mUpdateResults);
}
};
t.start();
}
private void doSomething() {
value = value+1;
}
private void updateResult() {
txtCounter1.setText(value);
}
}
私のコードは、Android Developerの例に基づいています:「一般的なタスクとその方法」セクションの「UIスレッドでの高価な操作の処理」の見出しの下。
私はどんな助けにも感謝しています。