2016-04-03 65 views
0

我在一個活動的OnCreate中創建了一個警報管理器,它應該在2小時後運行,但是它每隔幾分鐘後就會運行一次,有人可能會幫助我做什麼是錯誤的?Android:警報管理器失火

public class DrawerActivity extends AppCompatActivity { 

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_drawer_menu); 
     ButterKnife.bind(this); 
setUpFitnessAlarm(); 

} 

} 

private void setUpFitnessAlarm(){ 
     Intent alarmIntent = new Intent(DrawerActivity.this, GoogleFitAutoStart.class); 
     pendingIntent = PendingIntent.getBroadcast(DrawerActivity.this, 0, alarmIntent, 0); 


     int wkupTime; 

      wkupTime =72000; 
      Log.i(TAG,"Default timer fetch : "+wkupTime); 



     manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), wkupTime, pendingIntent); 


    } 

回答

1

AlarmManager.setInexactRepeating(...)的第三個參數是以毫秒爲單位,而不是秒。 正確的數字是2 * 60 * 60 * 1000 = 7200000

另外請記住,它可能不會完全2小時,因爲Android將警報組合在一起以節省電力(打盹)。可能是2小時2分鐘,或1小時59分鐘。如果你想有2個小時,然後使用setExact(...),但只有在真正需要時才使用它。

+0

非常感謝大家指出最後一個參數是毫秒我錯過了我錯過了。 – Sutirth