2017-06-06 68 views
0

我正在設置一個設置重複鬧鐘的應用程序。當其他應用程序正在運行時AlarmManager時間間隔發生變化

例如,它應該每2分鐘運行一次我的服務。 當myApplication活動運行時,它可以很好地工作,但是當其他應用程序在前臺運行時,間隔時間爲5分鐘!

我在前臺開始的另一項服務中運行此代碼。

我不知道爲什麼會發生這種情況。

public class Serv1 extends Service{ 

public static Intent intentServ2 = new Intent(G.context,Serv2.class); 
public static PendingIntent pendingIntend=PendingIntent.getService(G.context,0,intentServ2,0); 
public static AlarmManager alarmManager; 

public int onStartCommand(Intent intent, int flags, int startId) { 
alarmManager =(AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis()+(2*1000),120*1000,pendingIntend); 


    Intent notificationIntent = new Intent(this, Serv1.class); 

    PendingIntent pendingIntent = PendingIntent.getService(this, 0, 
      notificationIntent, 0); 

    Notification notification = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.mipmap.ic_launcher) 
      .setContentTitle("Serive1") 
      .setContentText("Service is working...") 
      .setContentIntent(pendingIntent).build(); 


    startForeground(254698, notification); 





    return Service.START_STICKY; 

} 
+0

你在運行什麼android版本? –

+0

lollipop api 22 – Mostafa

回答

0

AlarmManager docs

注:爲API 19日,所有重複報警是不準確的。如果您的應用程序需要精確的交付時間,那麼它必須使用一次性精確警報,如上所述每次重新安排時間。其targetSdkVersion早於API 19的傳統應用程序將繼續擁有其所有警報,包括重複警報,並將其視爲確切對待。

您可能正在經歷那些不準確的警報。

另請注意,如果您希望設備在警報熄滅時喚醒,則需要RTC_WAKEUP

相關問題