Android AlarmManger+service设置通知栏定时推送,清理后失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android AlarmManger+service设置通知栏定时推送,清理后失效相关的知识,希望对你有一定的参考价值。

大致流程是通过AlarmManager设置定时器,
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent it = new Intent(AlarmManagerActivity.this,NotificationService.Class);
时间到了启动NotificationService来推送消息,会被系统清理掉,目前不知道被清理的是闹钟还是Service
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent it = new Intent(AlarmManagerActivity.this, NotificationService.class);
PendingIntent pi = PendingIntent.getService(AlarmManagerActivity.this, 2, it, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar calendar = Calendar.getInstance();
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + 5 * 1000, pi);//5S后

参考技术A

我自己整理的:

有问题再问我吧。

追问

你的代码跟我的几乎一模一样,
关键是利用清理软件清理内存后,service启动失败,不只是AlarmManager 失效还是Service启动失败。

Windows Servis 应用无法识别 RDP 会话上的智能卡

【中文标题】Windows Servis 应用无法识别 RDP 会话上的智能卡【英文标题】:Windows Servis app does not recognize Smart Card on RDP session 【发布时间】:2019-02-25 19:03:11 【问题描述】:

我有一个 Java 应用程序,它读取数字签名和签名数据的令牌。

如果在 CMD 上运行应用程序前台,它可以正常工作。 使用此命令“c:\java -jar foo.jar”

但是当我在后台将其作为 Windows 服务启动时,它无法识别令牌。此问题仅发生在 RDP 会话中。 我在本地计算机上也没有问题,它作为 Windows 服务工作,没有任何问题。

我的问题是; Windows 是否有权在 RDP 会话中使用驱动程序(令牌)?当应用程序作为 Windows 服务在后台启动时。

致以最诚挚的问候...

【问题讨论】:

Windows 服务只能访问直接连接到服务器的智能卡。看看这个aticle 【参考方案1】:

Windows 服务只能访问直接连接到服务器的智能卡。

在这种情况下,RDP 智能卡重定向机制不适用,因为没有 RDP 会话。

看看这个article

【讨论】:

以上是关于Android AlarmManger+service设置通知栏定时推送,清理后失效的主要内容,如果未能解决你的问题,请参考以下文章

Android PendingIntent

Android取消所有alarmmanager

android 7.0变化

Android Jetpack架构组件之WorkManager

Android service 服务

Android 服务绑定与数据同步