Eğer iptal edersem Timer'ım çalışmıyor! Zamanlayıcı sadece tüm uygulamayı kapatırsam durur!Zamanlayıcı, timer.cancel() tarafından iptal edilmedi()
Zamanlayıcının neden iptal edilmediğini bilmiyorum. Zamanlayıcıyı iptal etmek için her denemeyi yazdırırsam, satırların hilelerini alıyorum ama Zamanlayıcı durmuyor!
My Sınıf:
public class PlayActivity extends AppCompatActivity
implements View.OnClickListener, SeekBar.OnSeekBarChangeListener, MediaplayerEvent {
//region Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Initialize_Layout();
Initialize_Objects();
}
@Override
protected void onResume() {
super.onResume();
MusicService.setMediaPlayerEvent(this);
txvSongtitle.setText(serviceInterface.MP_getActualSong().getTitle());
Start_Timer();
}
@Override
protected void onPause() {
timer.cancel();
MusicService.clearMediaPlayerEvent();
super.onPause();
}
@Override
public boolean onSupportNavigateUp() {
finish();
return super.onSupportNavigateUp();
}
//endregion
//region Methods
private void Start_Timer() {
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if (serviceInterface.MP_isPlaying()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
seekBar.setMax(serviceInterface.MP_getDuration());
seekBar.setProgress(serviceInterface.MP_getCurrentPosition());
}
});
}
else {
runOnUiThread(new Runnable() {
@Override
public void run() {
timer.cancel();
}
});
}
}
}, 0, 200);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
serviceInterface.MP_seekTo(progress);
Start_Timer();
}
}
//endregion
}
Bana yardım eder! Teşekkürler!
ok teşekkürler ama neden zamanlayıcı ile çalışmıyor? ve biliyorum neden kullanmalıyım Threads :) –
Diğer cevaplar arasındaydı - sorunlara neden olan ilerleme çubuğunu her güncellediğinizde yeni bir zamanlayıcı oluşturuyordunuz. Sevindim sevindim :) – privatestaticint
okey evet, thats harika :) –