2016-04-03 81 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