安卓 - 如何检测应用程序被激活

3
当应用程序启动时,会调用Application onCreate。如何检测应用程序从后台运行时被带到前台?

我建议您花些时间,仔细阅读Activity的生命周期 - bschultz
2个回答

4
请查找onResume()方法。当您的应用程序进入前台时,它将始终被调用。
根据谷歌文档

活动的前台生命周期是从调用onResume()到对应的onPause()之间发生的。在此期间,活动处于所有其他活动的前面,并与用户交互。一个活动可以经常在恢复和暂停状态之间切换——例如,当设备进入睡眠状态、传递活动结果或传递新意图时——因此,这些方法中的代码应该相当轻量级。

代码示例:
@Override
public void onResume()
{
    super.onResume();
    Log.d("tag", "This screen is back");
}

我在我的应用程序中有许多活动。我是否必须在所有这些活动中添加onResume方法才能检测到应用程序被带到前台? - cubesoft
1
恐怕是的,你必须这样做。除非你创建一个继承自Activity类的抽象类,然后让你当前的活动类继承该基类(抽象类)。通过这样做,你可以将你想要的代码放在基类中,这样对于所有的活动类都是共享的。 - waqaslam
是的,我知道这是可能的。我在想是否有更简单的方法来完成它。 - cubesoft

2

您可以重写onResume()。

@Override
public void onResume()
{
    Log.d("tag", "This screen is back");
}

然而,我同意评论中的观点,你可能需要更深入地了解Android的工作方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接