我有一项服务正在运行,每 x 分钟更新一次数据,我希望用户选择更新频率(每 10 分钟、30 分钟......)。我使用了 sharedpreferences 但似乎该服务不会改变更新的频率。这是我的服务代码:
 public void onCreate()
    {
      super.onCreate();     
      _startService();
     // if (MAIN_ACTIVITY != null)  Log.d(getClass().getSimpleName(), "FileScannerService started");
    }
  /*
     * starting the service
     */
    private void _startService()
    {   
      timer.scheduleAtFixedRate(   
              new TimerTask() {
                    public void run() {
                        try{
                        doServiceWork();
                        Thread.sleep(UPDATE_INTERVAL);
                        }catch(InterruptedException ie){
                            Log.e(getClass().getSimpleName(), "FileScannerService InterruptedException"+ie.toString());
                        }
                    }
                  },
                  DELAY_INTERVAL,
                  UPDATE_INTERVAL);
      Log.i(getClass().getSimpleName(), "FileScannerService Timer started....");
    }
这是我的共享首选项代码:
         SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
     String interval= SP.getString("synchronisation", "1");
    if(interval.equals("1")) UPDATE_INTERVAL= 30000;
    if(interval.equals("2")) UPDATE_INTERVAL= 60000;
    if(interval.equals("3")) UPDATE_INTERVAL= 120000;
我试图将 sharedpreferences 代码放在我的服务方法中的任何地方,但它不起作用。也许我走错路了。提前感谢您的帮助。