如何创建持久警报以通知用户事件?

时间:2012-07-18 04:52:19

标签: android alarm

我目前有AlarmManager BroadcastReceiver实施作为我的闹钟。但是有一个主要的缺陷;当强行关闭应用程序时它不会消失。我测试了ICS日历应用程序会发生什么,即使我强制关闭它也会消失。我知道有些人会说“如果用户以这种方式关闭应用程序,他们就不希望它会消失。”任务杀手怎么样?我正在寻找这种情况。很明显我的方法无法做到这一点,我看了看,但大多数(如果不是所有的)例子都是我实现它的方式。我有什么想法可以做到这一点吗?

编辑:因此,如果没有用户安装两个单独的应用程序,我想做的所有研究似乎都是不可能的,这是不理想的。谷歌有可能以这种方式制作日历应用程序(因为他们确实编写了源代码),因为我测试了市场上的顶级日历应用程序,当用户强行关闭应用程序时,它们都没有关闭。所以这就引出了一个问题,简而言之,这甚至可以在一个应用程序中完成吗?由于谷歌试图限制开发人员不允许用户控制随机播放的广播或服务,这看起来很渺茫,这是可以理解的。希望这有助于其他人快速意识到实际上没有真正的方法来实现这一点。您所能做的只是警告用户,以这种方式关闭您的应用程序,他们将不会收到警报;足够说了。

1 个答案:

答案 0 :(得分:2)

我不会使用带闹钟的广播接收器

广播接收器一般提供两种功能

1)收听系统广播

2)允许您自己以外的应用向您的应用发出请求。

Alarm Manager设置新警报: set(int type,long triggerAtMillis,PendingIntent操作) 安排闹钟。 (来自Android Documentation

放置在那里的Pending Intent是警报启动时触发的意图。您可以通过将服务放在intent中来使此Intent开始服务。 例如:

Intent i = new Intent(context, MyService.class)

MyService是一个扩展Service的类。 (你可以轻松地进行一项活动,但是让活动突然爆发是一种糟糕的设计。

Service就像没有用户界面的活动。基本上,您可以让它执行一些后台功能,并可能向用户发布已发生事件的通知。