TimerTask가 내 응용 프로그램 조각 중 하나에서 실행되고 있습니다. "fragmentManager.beginTransaction(). replace"메서드를 사용하여 다른 조각으로 dinamically 전환하려고하면 내 응용 프로그램이 충돌합니다. 모든 사항을 완벽하게 설명하면 내 문제가 Timer bucause와 연결되어있을 것입니다. 나는 UiThread에서의 TimerTask를 실행하게조각을 변경할 때 TimerTask가 작동을 멈 춥니 다.
public void startTimer(ProgressBar b){
final ProgressBar bar = b;
t = new Timer();
task = new TimerTask() {
@Override
public void run() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
bar.setMax(3600);
bar.setProgress(mytime);
//TextView tv1 = (TextView) getView().findViewById(R.id.textView2);
//tv1.setText("TIME LEFT:" +time);
if (mytime <= 3600)
mytime += 1;
else {
//tv1.setText("GAME OVER");
}
}
});
}
};
t.scheduleAtFixedRate(task, 0, 1000);
}
어쩌면 내가 조각을 변경할 수 없습니다 : 여기 내 조각 내부의 타이머 코드? 답해 주셔서 감사합니다.
SOOOOO .... 오류가있는 작업은 다음과 같습니다
당신이 조각이 같은
을 변경하기 전에 당신이 핸들러에 모든 콜백을 제거하십시오? 오, 내가 맞춰 보자. 바에서의 NPE. 셋 맥스()? 파편을 변경할 때 타이머를 멈추게하는 것은 어떨까요? – ElDuderino