gpt4 book ai didi

Android:检测整个应用程序(而不是单个 Activity )何时暂停/退出?

转载 作者:行者123 更新时间:2023-11-30 04:22:04 26 4
gpt4 key购买 nike

我的应用程序中的一个 Activity 启动/绑定(bind)到服务(也是我的应用程序的一部分)。只要整个应用程序仍在前台,我希望该服务继续运行,而不管哪个 Activity 处于 Activity 状态。但是我需要确保在整个应用程序暂停(主页按钮/后退按钮)时停止服务。

我怎样才能在应用程序级别而不是 Activity 级别执行此操作?

最佳答案

最简单的方法是使用一个单例来跟踪每个 Activity 的状态,例如仅显示一个 Activity 作为示例:

public class ActivityStates {

private static ActivityStates ref = null;
private static int firstAct = ACTIVITY_GONE;

public static synchronized ActivityStates getInstance() {
if (ref == null) {
ref = new ActivityStates();
}
return ref;
}

public int getFirstAct() {
return firstAct;
}

public void setFirstAct(int arg) {
this.firstAct = arg;
}
}

..并定义一些您可以导入的静态常量

public static final int ACTIVITY_GONE       = 0;
public static final int ACTIVITY_BACKGROUND = 1;
public static final int ACTIVITY_FOREGROUND = 2;

然后在每个 Activity 中都有一个方法

private void setActivityState(int state){
ActivityStates as = ActivityStates.getInstance();
as.setFirstAct(state);
}

然后在您的 onResume()、onPause、onDestroy() 中,您可以在进入这些方法时设置 Activity 的状态,例如在 onResume 中有

setActivityState(ACTIVITY_FOREGROUND)

在onDestroy()中有

setActivityState(ACTIVITY_GONE)

然后在您的服务中,或任何您想要的地方,您可以使用 get 方法找出每个 Activity 的状态并决定要做什么。

关于Android:检测整个应用程序(而不是单个 Activity )何时暂停/退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9099598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com