0

我开始开发一个需要用户每次登录的应用程序。

主要是我想知道用户何时单击我的应用程序图标并启动它,这样我就可以启动登录活动,而不是他上次使用该应用程序时打开的活动。

谢谢 :)

4

4 回答 4

0

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

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

于 2013-03-24T09:49:51.713 回答
0

According to android documentation, you can acheive that via manifest.xml file. by setting android:clearTaskOnLaunch="true" for your activity node in your manifest.

say your activity name is MainActivity then your manifest.xml should look like this:

.....
<activity android:name=".MainActivity"
          android:clearTaskOnLaunch="true"
 .....
于 2013-03-24T09:56:54.190 回答
0

您需要使用LifecycleObserver。从这里你可以知道你的应用程序什么时候进入后台,什么时候你的应用程序进入前台,无论你在哪个活动中。因为它正在观察应用程序的生命周期。因此,当应用程序进入前台时,您需要启动 LoginActivity,以便它将位于您的应用程序之上,并且用户必须像银行应用程序一样登录。

对于 LifecycleObserver,您需要使用以下代码行在应用程序类的 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() {
  }

}

需要依赖等级:

implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-rc01'
于 2019-07-26T10:40:16.917 回答
-1

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

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

这是活动生命周期图

在此处输入图像描述

我希望我的回答对您有所帮助,但如果您对我的回答还有其他问题,请随时在评论中提问:)

于 2013-03-24T09:48:53.627 回答