Java Android-服务可以在关闭的应用程序中启动活动吗

Java Android-服务可以在关闭的应用程序中启动活动吗,java,android,android-studio,android-activity,android-service,Java,Android,Android Studio,Android Activity,Android Service,问题- 是否可以使用服务启动应用程序并将用户带到特定的活动,而该活动不是主要活动?本质上,我正在构建一个警报系统,因此无论应用程序是关闭还是挂起,我都需要它工作 应用程序信息- 在我的应用程序中,我希望每30秒运行一次检查设备状态的服务。如果设备的状态与我定义的警报条件之一相匹配,我希望我的应用程序唤醒手机,让用户进入一个活动(而不是主活动),然后终止服务。一旦用户处理该情况,服务将在稍后再次开始 我的目标是API 19+,所以我必须使用服务,而不是调度程序(目前)。如果上面的答案是肯定的,我必

问题- 是否可以使用服务启动应用程序并将用户带到特定的活动,而该活动不是主要活动?本质上,我正在构建一个警报系统,因此无论应用程序是关闭还是挂起,我都需要它工作

应用程序信息- 在我的应用程序中,我希望每30秒运行一次检查设备状态的服务。如果设备的状态与我定义的警报条件之一相匹配,我希望我的应用程序唤醒手机,让用户进入一个活动(而不是主活动),然后终止服务。一旦用户处理该情况,服务将在稍后再次开始


我的目标是API 19+,所以我必须使用服务,而不是调度程序(目前)。如果上面的答案是肯定的,我必须假设启动服务比绑定服务更好?此外,IntentService似乎能够在工作完成后自行停止,即唤醒手机并将其带到活动中。想法?

答案是肯定的。如果启动一个启动服务的应用程序,则可能会完全终止该应用程序,该服务将在后台运行。此外,当服务启动活动时,它可以启动任何活动

在我的例子中,最好的服务是结合线程的启动服务。每30秒,线程可以在不停止用户活动的情况下执行一些工作。一旦满足我的条件,线程就可以停止服务本身

最后,要唤醒应用程序,只需在活动的onCreate()方法中输入几行代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
保持屏幕处于打开状态是可选的,但对于我的警报类型更可取

快乐编码-