安卓 - 检测多任务处理'app became active'



我正在尝试检测我的应用程序是否因多任务而变为活动状态,并显示一个对话框。

用例是这样的:用户正在使用应用程序->点击主页按钮->做某事->用户再次点击应用程序

正如预期的那样,正在显示用户参与的最后一个活动。

发生这种情况时,我想显示一个对话框。我用onRestart()做了同样的事情,它很有效。唯一的问题是,即使用户转到应用程序中的某个活动,然后进行反击,对话框也会显示出来。

我在活动生命周期中经历了好几次,但都无法找到解决方案。有什么想法吗?

好吧,您可以使用从后台任务或服务确定当前前台应用程序中概述的技术来判断前台应用程序:查找getForegroundApp。你可以运行一个计时器,定期检查应用程序是否处于前台,如果不是,则在适当的延迟后设置一个变量(以确保在切换"活动"时不会碰巧按错误的顺序点击它)。清除onStart中的变量,如果调用了rooth Activity的onCreate,您就知道该应用程序刚刚变为Active。

我通过在onStop()中的Shared Preferences中设置一个标志并在onDestroy()中清除它来实现这一点。

然后,每当按下"后退"按钮时,我都会越过它来清除标志。这解决了我所说的问题。

现在在onRestart()中,如果标志为true。。。。我显示对话框。

我知道这不是最优雅的解决方案,但它确实有效!希望这能帮助到别人。

最新更新