0
我有一个服务运行,每x分钟更新数据,我希望用户选择更新频率(每10分钟,30分钟...)。我使用了sharedpreferences,但似乎该服务不会更改更新的频率。 这里是我的服务代码:Android:更改在后台运行的服务的更新间隔
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代码:
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代码在我的服务方法,但它不能正常工作。也许我错了。 在此先感谢您的帮助。
您可能想要使用[AlarmManager](http://developer.android.com/reference/android/app/AlarmManager.html#setInexactRepeating%28int,%20long,%20long,%20android.app.PendingIntent%29 ),因为它专门设计用于安排Android中的事物。 – wsanville 2012-07-26 13:50:40
而不是timerTask,它不是一回事,因为定时器中有一个update_interval? – 2012-07-26 13:53:06