如何知道我的应用程序是否回归到后台

时间:2013-03-24 09:45:43

标签: android

我开始开发一个应用程序,即使在他每次进入应用程序之后都要求用户输入每个条目。 主要是我想知道用户何时点击我的应用程序图标并启动它以便我能够启动登录活动而不是他上次使用该应用程序时打开的活动 谢谢:))

4 个答案:

答案 0 :(得分:0)

那么,这个问题还有其他问题,例如,你为什么要这样做呢?再次为用户提供一致的交互以及系统的工作方式。

取消所有这些并且就我而言,唯一的方法是使用startActity将用户带到所有活动的所有onResume的登录屏幕。

答案 1 :(得分:0)

根据android文档,你可以通过manifest.xml文件实现。 为清单中的活动节点设置android:clearTaskOnLaunch="true"

说你的活动名称是MainActivity,那么你的manifest.xml应该是这样的:

.....
<activity android:name=".MainActivity"
          android:clearTaskOnLaunch="true"
 .....

答案 2 :(得分:0)

您需要使用LifecycleObserver。通过此操作,您可以知道应用程序何时在后台运行以及何时应用程序在前台运行,无论您处于哪种活动中。因为它正在观察应用程序生命周期。因此,当应用程序出现在前台时,您需要启动LoginActivity,这样它将在您的应用程序之上,并且用户必须像银行应用程序一样登录。

对于LifecycleObserver,您需要使用以下代码行在应用程序的Application类的onCreate()方法中注册。

ProcessLifecycleOwner.get().lifecycle.addObserver(appLifecycleObserver)

为上述对象(appLifecycleObserver)创建AppLifecycleObserver类

class AppLifecycleObserver(val context: Context) : LifecycleObserver {
  /**
   * Call when your app come to foreground
   */
  @OnLifecycleEvent(Lifecycle.Event.ON_START)
  internal fun onEnterForeground() {
    //goto login activity

  }
  /**
   * Call when your app go to background
   */
  @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
  internal fun onEnterBackground() {
  }

}

需要依赖gradle:

implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'

答案 3 :(得分:-1)

我认为您现在可以通过覆盖活动上的onpause方法并保存状态用户最后一次留在共享首选项中

您可以在此处查看有关活动生命周期的更多信息 - &gt; http://developer.android.com/reference/android/app/Activity.html

这是活动生命周期地图

enter image description here

我希望我的回答可以帮到你,但如果你对我的回答有另一个问题,请随时在评论中提问:)