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