请帮助我找出安排本地推送通知的最佳解决方案。
在我的应用中,我正在使用警报管理器来触发通知。但是这种方法效果不好。我的意思是它有时起作用,但并非每次都起作用。
即使设备处于空闲模式,也有可能显示通知。 (*没有互联网连接)。我正在阅读许多建议将GCM / FCM与高优先级通知一起使用的博客。但是问题是应用程序不需要互联网连接。所有通知信息部分均在应用程序端本身完成。因此,不需要服务器端的工作。
[此外,我尝试使用WorkManager和JobScheduler。这里的问题是通知的时间间隔。有时,App需要在一分钟内显示两个通知。那可能吗?如果是,请给我样品。
最后,本地通知调度的最佳实践是什么?
如果将应用添加到电池优化列表中,则不会触发警报管理器,因此,提示用户从电池优化列表中删除该应用,请检查以下代码
添加权限
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
开始从电池优化中删除活动/白名单
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent();
String packageName = getPackageName();
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
}
}