Android 使用静态 bool 值作为标志来确定 Activity 是否可见

标签 android android-activity lifecycle static-members

我想听听其他关于使用以下方法从其他 Activity 或服务确定 Activity 是否可见的其他意见:该方法是关于使用静态 boolean 作为标志,哪些值取决于 Activity 生命周期。 我已经实现了这个解决方案,它似乎工作正常。但是我怀疑这是否是一个可靠的解决方案,因为据我所知, Activity 生命周期包含在该 Activity 类的一个实例中,但静态方法或字段适用于所有实例。对于 Activity ,需要确定可见性状态,我使用了 singleTask 启动模式,因此不应超过一个实例。 考虑到这一点,假设静态 bool 值将 100% 代表我的 Activity 的实际状态是否安全?

最佳答案

当然,您可以使用静态 bool 标志。但是,如果您有更多选项,那么我建议改用 enum

如果您的应用程序有超过 2 个 Activity,使用 bool 值只会导致难以维护。

因此,为了清晰的代码,请使用枚举标志,例如:

public enum EActivityState{
  UNKNOWN,
  VISIBLE,
  NOT_VISIBLE,
  LAUNCHED,
  // ....
}

可以使用后:

private EActivityState mActivityState = EActivityState.UNKNOWN;

....

if(EActivityState.LAUNCHED == mActivityState ){
  // do something
}

关于Android 使用静态 bool 值作为标志来确定 Activity 是否可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18258829/

相关文章:

android - 在运行时更改显示语言并重新创建所有 Activity

iOS : instance variable in block

Android服务startId参数

ios - 在 IOS 上从后台重新激活后,Flutter 应用程序 UI 被卡住

java - 如何为 Android Fragment(Tabs Activity) 实现 onBackPressed

android模拟器eclipse退出应用程序,

android - 在 RecyclerView 中使用 onClick() 启动新 Activity

android - 为现有应用程序创建即时应用程序

java - 如何从我在android中的应用程序启动另一个应用程序

java - Android 通用谷歌地图 API key