我有一项服务正在运行,每 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 代码放在我的服务方法中的任何地方,但它不起作用。也许我走错路了。提前感谢您的帮助。