我想没5分钟定时启动我的一个服务,可是 setRepeating设置的时间间隔设置一个比较小的时间时如50毫秒 可以定时启动,当时设置一个大点的时间 5000毫秒就不行了 不知道什么原因
 我的代码是:
       
                 AlarmManager am = (AlarmManager) this
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(action);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 1);
am.setRepeating(AlarmManager.RTC, 0, 5000, pi);  //这里设置成大于5000毫秒的数就不能定时启动了
                

解决方案 »

  1.   

    AlarmManager.RTC换成 
    AlarmManager.WAKEUP_RTC试一试
      

  2.   

        应该没问题的,我的代码是这样的,在模拟器上测试OK
         AlarmManager am = (AlarmManager)StartTiming.this.getSystemService(Context.ALARM_SERVICE);
     Intent intent = new Intent(MYACTION);
     PendingIntent pi = PendingIntent.getBroadcast(StartTiming.this, 0, intent, 1);
    //  am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+15000, pi);//15秒后启动
     am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+ 60000 , 60000, pi);//1分钟以后开始,每1分钟触发一次
      

  3.   

        楼主估计是在am.setRepeating(AlarmManager.RTC, 0, 5000, pi);中的第二参数设置上有问题吧?
      

  4.   

        恩,我确定啊。
         我试过使用 Process.killProcess()和DDMS中的divices窗口上的stop按钮两种方式来关闭进程,都是能行的,不过真机上是没试过。
      

  5.   

    setRepeating(int type,long startTime,long interval,PendingIntent pi)中四个参数中,第一个参数代表闹钟类型,比如手机睡眠状态或者关机状态闹钟是否有效,一般没什么影响;第二个代表闹钟开始执行时间(第一次),你不要设置成0,改成其他的,比如System.currentTimeMillis()方法试试:am.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), 5000, pi);  
      

  6.   

    http://mycoding.iteye.com/blog/1172055
    看这里 告诉你参数的含义