我正在开发一个应用程序,这个应用程序需要在发生某些事件时向用户发出明确的指示。
直到现在我才能做的事就是在通知区域发出通知。但是,我需要提供更明显的通知,类似于电话在来电中响铃时的行为。
据我所知,android只允许应用程序发出通知的原因是为了防止应用程序干扰用户。但是,我正在开发的这个应用程序在用户的工作中起着至关重要的作用,所以我认为提供如此强烈的通知并不合适。
我知道这应该是可行的,因为像Viber这样的应用可以开始类似于来电的活动,即使设备正在睡觉。
有谁知道如何完成这项工作?
答案 0 :(得分:1)
注册广播接收器,并向其添加自定义操作,例如 CustomAction 。而不是显示通知,抛出广播并通过意图过滤器添加 CustomAction 。
现在在广播监听器的onReceive方法中,检查
如果(intent.getAction.equals(" CustomAction&#34))Intent i = new Intent(context, YourActivity);
context.startActivity(i);
很抱歉,如果没有格式化的答案,我开车后会更新,以便进一步澄清。
<强>更新强>
在粘性服务中注册广播接收器。因此,如果被杀死并且再次注册广播寄存器,则可以自动启动服务。 不要忘记在 onDestroy()服务方法中取消注册广播接收器,并在解决目的时在 YourActivity 中取消注册。
答案 1 :(得分:1)
只是添加粘性服务(什么都不做)修复了问题。添加该服务可防止该进程在用户退出应用程序时被杀死,并将其从最近的应用程序列表中删除。
由于该服务,即使没有可见的UI,应用程序进程仍在运行。在此状态下,如果从GCM服务显示活动,则会显示该活动。
答案 2 :(得分:0)
你可以像Vinay提到的那样触发广播。如果仍然无效,请尝试使用唤醒锁。这些唤醒锁有助于在设备处于睡眠模式时唤醒设备。它会像强制唤醒一样,在调用唤醒锁后,你可以执行你的行动。
希望它有所帮助......
感谢。