アプリケーションに多くのアクティビティがあります (例: A->B->C->D)...セッション タイムアウトに使用しているカウントダウンタイマーがあります..私が行ったことは、静的カウンターを作成することです...私はアクティビティ A でカウンターを開始します....ユーザーが操作するとカウンターがリセットされます...これはアクティビティ B、C、D にも適用されます....アクティビティ D の終了時にも、アクティビティ A が開始されます..この i について使用addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
したので、スタックをクリアします...
しかし、アクティビティAが再び開始されたときに何が起こるか..新しいインスタンスが前のカウンターとともに作成され、バックグラウンドで実行され続けます....そしてユーザーインタラクションでリセットされません...私はcounter = null
onDestroyでやった....それは正しいですか、それとも何か他のことをする必要がありますか???
public class CountTime extends Activity {
TextView tv;
static MyCount counter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tv = new TextView(this);
this.setContentView(tv);
// 5000 is the starting number (in milliseconds)
// 1000 is the number to count down each time (in milliseconds)
counter = new MyCount(5000, 1000);
counter.start();
}
@Override
public void onUserInteraction() {
// TODO Auto-generated method stub
super.onUserInteraction();
counter.start();
}
// countdowntimer is an abstract class, so extend it and fill in methods
public class MyCount extends CountDownTimer {
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
tv.setText("done!");
}
@Override
public void onTick(long millisUntilFinished) {
tv.setText("Left: " + millisUntilFinished / 1000);
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
counter = null;
}
}