Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:如何在手机处于睡眠状态时启动活动,类似于Viber输入通话活动_Android - Fatal编程技术网

Android:如何在手机处于睡眠状态时启动活动,类似于Viber输入通话活动

Android:如何在手机处于睡眠状态时启动活动,类似于Viber输入通话活动,android,Android,我正在开发一个应用程序,该应用程序需要在某些事件发生时向用户提供明确指示 到目前为止,我唯一能做的就是在通知区发出通知。但是,我需要给出一个更明显的通知,类似于来电时手机铃声的行为 据我所知,android只允许应用程序发出通知的原因是为了防止应用程序干扰用户。但是,我正在开发的这个应用程序在用户的工作中起着至关重要的作用,所以我不认为发出如此强烈的通知是不合适的 我知道这应该是可行的,因为像Viber这样的应用程序可以启动类似于来电的活动,即使在设备处于睡眠状态时也是如此 有人知道如何做到这一

我正在开发一个应用程序,该应用程序需要在某些事件发生时向用户提供明确指示

到目前为止,我唯一能做的就是在通知区发出通知。但是,我需要给出一个更明显的通知,类似于来电时手机铃声的行为

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

我知道这应该是可行的,因为像Viber这样的应用程序可以启动类似于来电的活动,即使在设备处于睡眠状态时也是如此


有人知道如何做到这一点吗?

注册一个广播接收器,并向其添加一个自定义操作,比如说CustomAction。不要显示通知,而是通过意向过滤器抛出广播并添加CustomAction。 现在在广播侦听器的onReceive方法中,检查 if(intent.getAction.equals(“CustomAction”)
intent i=newintent(context,YourActivity);
背景。起始触觉(i)

抱歉,没有格式化的答案,我正在驾驶,稍后将更新以获得更多澄清

更新

在粘性服务中注册广播接收器。这样,服务可以在终止时自动启动,并重新注册广播。
当您的目的得到解决时,不要忘记在onDestroy()服务方法和YourActivity中注销广播接收器。

如Vinay所述,您可以触发broascast。如果仍然不起作用,请尝试使用唤醒锁。这些唤醒锁有助于在设备处于睡眠模式时唤醒设备。它的作用类似于强制唤醒,在调用唤醒锁后,您可以执行您的操作

希望有帮助


谢谢。

只需添加一个粘性服务(什么都不做)就可以解决这个问题。当用户退出应用程序并将其从最近的应用程序列表中删除时,添加服务可防止进程被终止


由于该服务,应用程序进程正在运行,即使没有用户界面可见。在此状态下,如果GCM服务显示某个活动,则会显示该活动。

感谢您的回答,此操作按预期进行。您能否解释一下,为什么在广播接收器中创建的新活动会显示,但在GCM侦听器服务中创建的新活动(我之前显示的通知)在应用程序当前未运行时不会显示?我不确定,但有可能应用程序被终止。在这种情况下,在启动活动时,您必须将类别“活动”启动器设置为“意图”。@MalwinderSingh您的意思是
intent.addFlags(FLAG\u activity\u NEW\u TASK)