3

我目前有一个AlarmManagerwithBroadcastReceiver实现作为我的警报。但是,这有一个主要缺陷;强制关闭应用程序时它不会熄灭。我测试了 ICS 日历应用程序会发生什么,即使我强制关闭它也会消失。我知道有些人会说“如果用户以这种方式关闭应用程序,他们不希望它关闭。” 任务杀手呢?这就是我正在寻找的情况。很明显我的方法无法做到这一点,我已经看了又看,但大多数(如果不是全部)示例都与我实现它的方式相似。有什么想法可以做到这一点吗?

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

4

1 回答 1

2

我不会在您的警报中使用广播接收器

广播接收器通常提供两个功能

1) 收听系统广播

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

警报管理器设置新警报: set(int type, long triggerAtMillis, PendingIntent operation) 安排警报。(来自Android 文档

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

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

其中 MyService 是一个扩展 Service 的类。(你可以很容易地做一个活动,但是让活动突然出现是糟糕的设计。

Service就像没有 UI 的 Activity 。基本上,您可以让它执行一些后台功能,并可能向用户发布发生某事的通知。

于 2012-07-18T05:28:56.133 回答