Android:如何在手机休眠时启动活动,类似于Viber接入呼叫活动

时间:2017-01-15 02:18:57

标签: android

我正在开发一个应用程序,这个应用程序需要在发生某些事件时向用户发出明确的指示。

直到现在我才能做的事就是在通知区域发出通知。但是,我需要提供更明显的通知,类似于电话在来电中响铃时的行为。

据我所知,android只允许应用程序发出通知的原因是为了防止应用程序干扰用户。但是,我正在开发的这个应用程序在用户的工作中起着至关重要的作用,所以我认为提供如此强烈的通知并不合适。

我知道这应该是可行的,因为像Viber这样的应用可以开始类似于来电的活动,即使设备正在睡觉。

有谁知道如何完成这项工作?

3 个答案:

答案 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提到的那样触发广播。如果仍然无效,请尝试使用唤醒锁。这些唤醒锁有助于在设备处于睡眠模式时唤醒设备。它会像强制唤醒一样,在调用唤醒锁后,你可以执行你的行动。

希望它有所帮助......

感谢。