2011-05-27 19 views
1

我试图检测我的应用程序是否因多任务而变得活跃并显示对话框。Android - 从多任务处理中检测“应用程序变得活跃”

用例是这样的:用户正在使用的应用程序 - >点击主页按钮 - >请问什么 - >用户在应用水龙头再次

正如预期的那样,最后活动的用户是在正在显示。

我想在发生这种情况时显示一个对话框。我用onRestart()相同和它的作品。唯一的问题是,即使用户在应用程序中进行了一些活动,然后再次点击,对话框也正在显示。

我经历了几次活动生命周期,但找不到解决方案。有任何想法吗?

回答

0

我通过在onStop()中的共享首选项中设置一个标志并在onDestroy()中清除它来实现此目的。

然后我重写了Back按钮来清除标志,只要它被按下。这解决了我所说的问题。

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

我知道这不是最优雅的解决方案,但做的工作!希望这有助于某人。

0

那么,您可以使用Determining the current foreground application from a background task or service中概述的技术来告诉前台应用程序:查找getForegroundApp。你可以运行一个定时器来定期检查应用程序是否为前景,如果没有,那么在适当的延迟之后设置一个变量(以确保在切换活动时不会碰到错误的顺序)。清除onStart中的变量,如果您曾经调用过活动的onCreate,那么您知道该应用刚刚变为活动状态。

相关问题