有没有办法在背景和背景中的特定活动中获得应用的不同事件?
换句话说,当任何活动进入后台调用的onPause()方法时,有没有找到整个应用程序转到后台?
Manifest文件是否有任何设置可以在应用程序转到后台时关闭它。
谢谢,
AndroidIT
答案 0 :(得分:2)
确定应用程序是否在后台:
有一种更简单的方法:
在所有活动扩展的 BaseActivity上:
protected static boolean isVisible = false;
@Override
public void onResume()
{
super.onResume();
setVisible(true);
}
@Override
public void onPause()
{
super.onPause();
setVisible(false);
}
每当您需要检查您的应用程序活动是否在前台时,只需检查isVisible()
;
要了解此方法,请查看并排活动生命周期的答案:Activity side-by-side lifecycle
如果您希望在应用程序转到后台时将其终止,您有以下几种选择:
答案 1 :(得分:0)
我认为您的所有活动都是由您应用中的其他活动启动的。如果是这种情况,也许您的活动可以设置标志,表明它正在启动活动。然后,当调用onpause()时,此标志将确定应用程序是移动到后台还是仅启动下一个活动。
答案 2 :(得分:0)
在共享首选项中保存每个活动的状态。每个活动在首选项文件中都需要自己的字段。每次onResume
或onPause
时,请更新正确的偏好。
或:每当您onResume
或onPause
通过意图 X 活动暂停/恢复时向服务发送通知。该服务将以这种方式跟踪应用程序状态