連続実行のためにTimerTaskをスケジュールするタイマーを作成しようとしています。何回動作するかわかりません。ユーザーがクリックするとタイマーが停止し、別のユーザーがクリックするとタイマーが再び実行されます。停止するまですべてが機能します。スケジュールを変更すると、タイマーがキャンセルされたか、すでにスケジュールされているという例外が発生します。どうすれば停止して再度実行できますか?考えられることはすべて試しましたが、まだ機能していません。
これは私が試している最新のコードです:
Timer myTimer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cameraTimedTask = new camera(this);
myTimer = new Timer("cameraTimer");
Button b=(Button)findViewById(R.id.b);
b.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
myTimer.purge();
myTimer.scheduleAtFixedRate(cameraTimedTask, 1000, 5000);
}
});
Button bb=(Button)findViewById(R.id.button);
bb.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
myTimer.cancel();
myTimer.purge();
myTimer = null;
myTimer = new Timer("camerasTimer");
Log.i("Check","[main]"+" timer stopped");
}
});
}