2013-07-12 68 views
0

我有一段代码,其中安排任务每10(3,5,20,60,无所谓)秒重复这一类: AlarmManager + BroadcastReceiver + IntentService不同的计划任务的行为

在SDK模拟器(4.2.2),它工作正常

07-12 09:02:32.257: INFO/Alarm Receiver(1827): Entered 
07-12 09:02:42.256: INFO/Alarm Receiver(1827): Entered 
07-12 09:02:52.275: INFO/Alarm Receiver(1827): Entered 

但我的手机Xiaomi MI-2S (4.1.1)上只触发每5分钟

07-12 16:06:07.044: INFO/Alarm Receiver(5632): Entered 
07-12 16:11:06.874: INFO/Alarm Receiver(5632): Entered 
07-12 16:16:06.864: INFO/Alarm Receiver(5632): Entered 

什么问题?

upd。这里的代码

活动

public void startSchedule 
{ 
    AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(getApplicationContext(), MyReceiver.class); 
    final PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 10*1000, pIntent); 
} 

public void endSchedule 
{ 
    AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(getApplicationContext(), MyReceiver.class); 
    final PendingIntent pIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    am.cancel(pIntent); 
} 

广播接收器

@Override 
public void onReceive(Context context, Intent intent) 
{ 

    Log.i("Alarm Receiver", "Entered"); 
    context.startService(inService); 
} 

IntentService空现在

@Override 
protected void onHandleIntent(Intent arg0) 
{ 
    // Do some task 
} 
+0

请告诉我们您的代码:) –

+0

添加一些代码:) –

+0

这不是代码的问题!试用我的平板电脑,运行ICS 4.0.3,得到了预期的结果:每10秒记录一次。所以我认为这是我手机的问题。我真的不知道在哪里发布这个问题)) – AHTOH

回答

0

这是小米v5固件的错误! 我发现了一种解决方法,可以让我的应用程序正常工作,但我认为会出现问题。我用

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 5 * 1000, pendingIntent); 

,而不是

alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 5 * 1000, pendingIntent);