2016-03-09 5 views
0

Я работаю над простым приложением. в моем приложении я использую TimerTask так:Не удалось перенастроить таймер в Android

TimerTask saveData=new TimerTask() { 
    @Override 
    public void run() { 
    saveDatatoFile(); 
    } 
}; 

я называю TimerTask в OnCreate() моей деятельности как:

int file_saving_pollingtime=60000; 
timer.schedule(saveData,10000,file_saving_pollingtime); 

его работает отлично. Я хочу изменить файл_saving_pollingtime в режиме реального времени, потому что я использую BroadcastReceiver для чтения сообщения определенного шаблона, который содержит file_saving_pollingtime. я успешно прочитал file_saving_pollingtime из сообщения и сохранил его в прессе. но я не смог обновить file_saving_pollingtime таймера, как на сообщение file_saving_pollingtime:

if (frequency.matches(regexStr)){ 
          editor.putString(FILE_FREQUENCY, frequency); 
          editor.commit(); 
          int fre=Integer.parseInt(sharedPreferences.getString(FILE_FREQUENCY, "0")); 
          int freq=fre*1000; 
          Log.d("dfdfdfdf", String.valueOf(freq)); 
          Novipod mv=new Novipod(); //mv is the instance of main activity class 
          mv.timer.cancel(); 
          mv.timer.schedule(mv.saveData,1000,freq); 

         } 

пожалуйста, помогите мне, ребята

+0

пожалуйста, ребята помочь, если кто-то может –

ответ

0

Попробуйте с помощью следующего кода:

public void rescheduleTimer() { // call it to reschedule the timer 
    if(timer != null){ 
     timer.cancel(); 
    } 
    timer = new Timer(); 
    timerTask = new MyTimerTask(); 
    timer.schedule(timerTask,1000,freq); 
} 

private class MyTimerTask extends TimerTask { 
    @Override 
    public void run() { 
     saveDatatoFile(); 
    } 
} 
+0

я пытался он не работает. –

+0

проверьте, помогает ли мой обновленный ответ. :) – zeeali