【问题标题】:How to check/access a different activity's lifecycle from the current activity?如何从当前活动检查/访问不同活动的生命周期?
【发布时间】:2018-07-09 18:58:07
【问题描述】:

我想访问与当前活动不同的活动的活动生命周期方法...我可以这样做吗?例如,我有 2 个活动 A 和 B。我想从活动 B 访问活动 A 的 onStop 方法。我可以这样做吗?我正在尝试检查我的应用程序中具有多个活动的用户的在线情况,所以我想编写类似于 = 如果两个活动的 onStop/onDestroy 方法都被调用,则表明用户处于离线状态...代码我用的是

        @Override
    public void onStart(){
    super.onStart();
    mDatabaseReference.child("Online").setValue(true);
    }

        @Override
    public void onStop(){
    super.onStop();
    mDatabaseReference.child("Online").setValue(false);
}

谁能帮帮我

【问题讨论】:

  • 您可能可以使用一些丑陋的解决方法来做到这一点,但 Android 架构的设计方式是您不应该从其他活动访问一个活动。正确的方法是重构应用程序的架构
  • 或者你可以使用回调。
  • 您可以创建单独的单例类并在那里保存活动的状态。然后就可以在其他activity中访问activity保存状态的状态了。
  • 你不能这样做,如果你想检查用户的可用性,还有其他方法可以做到。
  • 我可以知道@Umair 的其他方法是什么我如何使用回调实现这一目标

标签: java android android-activity firebase-realtime-database


【解决方案1】:

在您的应用程序类中使用Application.ActivityLifecycleCallbacks。这样,您只需将您的活动注册到回调,并且只有您可以从应用程序类中追踪是否存在任何活动。

更多信息请参考answer

【讨论】:

【解决方案2】:

设置值您可以使用SharedPreferences。在应用程序级别声明 sharedpreference 的实例。

在活动 A 和 B 中,您可以在 onStop()、onDestroy() 和 onStart() 块中设置值。

【讨论】:

  • 我能得到关于如何实现它的代码吗...我以前从未为此目的处理过共享首选项
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多