Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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 检查后台服务是否恢复了任何活动?_Android - Fatal编程技术网

Android 检查后台服务是否恢复了任何活动?

Android 检查后台服务是否恢复了任何活动?,android,Android,我看到过类似的问题,他们想知道他们是否可以找到某个特定的活动是否正在从服务运行。这不是我想做的。我想知道用户当前是否正在使用我的应用程序上的任何活动 我的用例是我有一个监控服务,它监控许多与会话相关的事情,比如套接字连接。如果套接字连接在任何一点出现故障,则监控服务将被告知,并且必须让用户知道。但是,我只想让用户知道他是否正在使用我的应用程序。如果他按下home(主页)按钮去别的地方查东西,我不想让他知道。如果他正在使用我的应用程序,我会向他显示一个对话框 我的问题是,我需要能够检查当前是否有任

我看到过类似的问题,他们想知道他们是否可以找到某个特定的活动是否正在从服务运行。这不是我想做的。我想知道用户当前是否正在使用我的应用程序上的任何活动

我的用例是我有一个监控
服务
,它监控许多与会话相关的事情,比如
套接字
连接。如果
套接字
连接在任何一点出现故障,则监控
服务
将被告知,并且必须让用户知道。但是,我只想让用户知道他是否正在使用我的应用程序。如果他按下home(主页)按钮去别的地方查东西,我不想让他知道。如果他正在使用我的应用程序,我会向他显示一个对话框

我的问题是,我需要能够检查当前是否有任何
活动
正在恢复。如果是这样,那么我将向用户显示一个对话框

我见过很多在我看来相当糟糕的解决方案。我不想持有一个由活动不断更新的
布尔值
,以了解活动是否正在运行。我希望能够清楚地知道是否有恢复的活动,并显示一个对话框,如果是这样的话。请记住,我处于
服务
,因此我没有上下文。

您可以在AndroidX生命周期库中使用,并检查当前生命周期状态是否至少为
已启动
(用户可见)或
已恢复
(最前端),具体取决于您的偏好。它的生命周期是应用程序中所有
活动
生命周期的组合,因此这将检查是否有任何
活动
处于该状态

此外:

请记住,我在一个
服务中
,因此我没有上下文


服务
扩展了
上下文
,因此您可以将
服务
用作
上下文
,就像在
活动中一样

哇,这非常有效!到目前为止,这是解决这个问题的最好办法。