2016-10-17 63 views
11

我已经有一个每天发生火灾的警报FLAG_UPDATE_CURRENT。这是来自开发者控制台的日志。Firebase发射太多警报

java.lang.SecurityException: [email protected] many alarms (500) registered from pid 32326 uid 10206 
    at android.os.Parcel.readException(Parcel.java:1540) 
    at android.os.Parcel.readException(Parcel.java:1493) 
    at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:206) 
    at android.app.AlarmManager.setImpl(AlarmManager.java:428) 
    at android.app.AlarmManager.set(AlarmManager.java:215) 
    at com.google.firebase.iid.FirebaseInstanceIdService.zzagl(Unknown Source) 
    at com.google.firebase.iid.FirebaseInstanceIdService.zzd(Unknown Source) 
    at com.google.firebase.iid.FirebaseInstanceIdService.zza(Unknown Source) 
    at com.google.firebase.iid.FirebaseInstanceIdService.zzm(Unknown Source) 
    at com.google.firebase.iid.zzb$2.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run(Thread.java:818) 

我使用火力地堡9.6.1


UPDATE:

public static void setAlarm(Context context, boolean isSet) { 
    try { 
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(context, AlarmReceiver.class); 

    boolean isWorking = (PendingIntent.getBroadcast(context, 
       SettingsActivity.REQUEST_CODE, intent, PendingIntent.FLAG_NO_CREATE) != null); 

    if (isSet && !isWorking) { 
     PendingIntent sender = PendingIntent.getBroadcast(context, 
            SettingsActivity.REQUEST_CODE, intent, 
            PendingIntent.FLAG_UPDATE_CURRENT); 

     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 

     calendar.set(Calendar.HOUR, 10); 
     calendar.set(Calendar.MINUTE, 0); 
     calendar.set(Calendar.SECOND, 0); 

     am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
           AlarmManager.INTERVAL_DAY, sender); 
     } else { 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 
             SettingsActivity.REQUEST_CODE, intent, 
             PendingIntent.FLAG_CANCEL_CURRENT); 
     am.cancel(pendingIntent); 
     pendingIntent.cancel(); 
     } 
    } catch (Exception e) { 
     Crashlytics.logException(e); 
    } 
} 
+0

这个问题会帮助你http://stackoverflow.com/questions/29344971/java-lang-securityexception-too-many-alarms-500-registered-from-pid-10790-u/29703161 –

+3

不,它赢了“T。首先它没有提到任何关于火力点的内容。其次,我已经在使用'FLAG_UPDATE_CURRENT'。 – mjosh

+1

这似乎是Firebase中的内部错误。正如firebase google小组所述(https://groups.google.com/forum/#!topic/firebase-talk/Q_zycHnTGu0),即使您没有在您的网站上使用任何闹钟,问题也会出现(对于三星设备最多)应用程序。 –

回答