2017-05-03 96 views
0

我非常新的Android所以這可能是非常基本的問題:更新/重新啓動的Android服務首

我有一個開始,當用戶按下一個按鈕

該服務將啓動一個新的任務服務並每N秒循環一次。 秒數在我的Android應用程序的「設置」選項卡上設置。

在服務的OnStart()方法獲得的首選項。

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

,並設置設置,例如:

final Long pollInterval = Long.parseLong(settings.getString("pollInterval", "1000")); 

任務是對新entrys數據庫查詢。 我的目標是在返回主框架後重新啓動服務,以便onCreate方法獲得新的首選項或刷新正在運行的任務中的首選項以更改輪詢間隔。

我試圖重新啓動與服務:

startService(serviceIntent); 
stopService(serviceIntent); 

但出於某種原因,這並不工作。

在此先感謝您的答案。

回答

0
Use this one to repeat service 



try { 

      //Create a new PendingIntent and add it to the AlarmManager 
      Intent intent = new Intent(this, Service.class); 
      PendingIntent pendingIntent = PendingIntent.getService(this, 
       12345, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
      AlarmManager am = 
       (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
      am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 
        2*60*60,pendingIntent); 

      } catch (Exception e) {} 

Also stop service when your task is completed