2012-07-18 42 views
3

我目前有一个AlarmManagerBroadcastReceiver作为我的警报。虽然这有一个主要缺陷,它在关闭应用程序时不会关闭。我测试了ICS日历应用程序会发生什么,即使我强行关闭它,它也会熄灭。我知道有些人会说“如果用户以这种方式关闭应用程序,他们不希望它会关闭。”那么任务杀手呢?我正在寻找这种情况。很显然,我的方法无法实现这一点,而且我看了看,但大多数(如果不是所有的例子)都是我如何实现它的。任何想法我可以做到这一点?如何创建持续警报以通知用户事件?

编辑:这么看来所有的研究,我已经做了我想做的事情是不可能的,而无需用户安装两个独立的应用程序,这是不理想的。 Google有可能以这种方式制作了Calendar应用程序(因为他们会编写源代码),因为我测试了市场上的顶级Calendar应用程序,并且在用户部队关闭应用程序时他们都没有关闭。所以这引出了一个问题,简单地说,这甚至可以在单个应用程序中完成?由于Google试图遏制开发者不允许用户控制随机播放的广播或服务,这是可以理解的,这看起来很渺茫。希望这可以帮助其他人很快意识到真的没有一种真正的方法来实际做到这一点。你所能做的就是警告用户,以这种方式关闭你的应用程序时,他们不会得到警报;说够了。

+0

您是否将广播接收器挂钩到清单或活动中? – Pyrodante 2012-07-18 04:54:22

+0

清单 – Andy 2012-07-18 04:57:31

+0

我只问,因为我的闹钟已设置好,所以我怀疑这个问题或者是在植入过程中,或者是其他的问题,我的第一个线索是:为什么你使用带有报警的无线电通信设备?只需挂起一个待处理意图通过报警服务即可 – Pyrodante 2012-07-18 05:00:39

回答

2

我不会用广播接收器与报警

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

1)听的广播从系统

2)允许自己的外部应用程序提出你的应用程序的请求。

报警管理器设置了新的报警: set(int type,long triggerAtMillis,PendingIntent操作) 安排报警。 (来自Android Documentation

放置在那里的挂起的意向是当报警启动时将被触发的意图。您可以通过将此服务置于意图中来启动此服务。 例如:

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

其中MyService是扩展Service的类。 (你可以很容易做一个活动,但有活动从不知所措的设计是可怕的设计

A Service就像一个没有用户界面的活动基本上,你可以让它执行一些后台功能,通知用户发生了某些事情

+0

:)谢谢你再次花时间。好吧,所以我想真正理解这一点。我仍然应该使用'AlarmManager',而不是使用'BroadcastReceiver'来设置通知,我应该使用'Service'。但是不是'AlarmManager'也是一个问题?如果这不会运行,那么它将永远不会调用自定义的“服务”。 – Andy 2012-07-18 06:01:44

+0

报警管理器中设置的报警已在系统中注册,除非在代码中取消或重新启动设备,否则任何事情都不应停止。 – Pyrodante 2012-07-18 14:04:50

+0

真的......那么试一试它就会失败。它工作正常,直到我强迫关闭,然后它永远不会运行。但是你说什么是有道理的,所以我不知道为什么它没有发生。 – Andy 2012-07-18 19:46:58