Вы должны отключить функцию «Оптимизация батареи» для этого конкретного приложения, которое использует функции FCM. О том, как отключить «Оптимизацию батареи», вы можете выполнить следующие шаги:
Информация о приложении-> Батарея-> Оптимизация батареи, затем выбрать «Все приложения» из меню и найти свое приложение, выберите «Не оптимизировать».
Вам не нужен foreach, Вы могли просто использовать это...
obj.RemoveAll(act => isDomainBlackListed(ref dc, act.Referrer));
Можно просто поместить его в конце запроса для фильтрования их, прежде чем они даже закончат в результате:
var obj =
(from a in dc.Activities
where a.Referrer != null
&& a.Referrer.Trim().Length > 12
&& a.Session.IP.NumProblems == 0
&& (a.Session.UID == null || a.Session.UID < 1 || a.Session.User.BanLevel < 1)
select a)
.Take(int.Parse(ConfigurationManager.AppSettings["RecentItemQty"]))
.Where(a => !isDomainBlacklisted(ref dc, a.Referrer));
Можно поместить Where
перед Take
если Вы хотите, чтобы другие объекты заменили тех отфильтрованных, но это значит больше вызовов для isDomainBlacklisted, конечно.