Android 应用程序生命周期

Android Application Lifecycle

我看到很多关于 Activity 生命周期的答案,其中大部分对我来说都很清楚。我正在寻找的是应用程序生命周期。我有以下情况:

  1. 应用程序启动 - 使 PIN 无效
  2. 如果 PIN 过时或无效,则必须输入 PIN
  3. 应用程序后台运行(Android 主屏幕可见)- 使 PIN 无效
  4. 应用程序在前台运行(应用程序再次可见)- 转到步骤 2

有了 Activity 生命周期,即使不是不可能,也很难实现。有什么建议吗?

当你的应用程序在后台(不再可见)时,调用的方法是onStop(),当应用程序在前台时,onStart()然后onResume()将被调用(onCreate()也可以调用)。

问题是,您应该做的是在 onStop() 中使 PIN 无效,然后在 onResume() 中请求 PIN。这将始终让您的应用程序要求输入 PIN:应用程序第一次启动时以及在后台运行时。

  1. 申请开始-onCreate()/onStart()

  2. 获取onCreateonStartonResume()中的pin(查看pin的状态。

3.Application 已后台运行 - onPause() - 使您在 onPause() 方法上的 pin 无效

4.The 应用程序在前台 - onResume() - 在 onResume()

中执行步骤 2

受到 Doomsknight 向我指出的解决方案的启发,我构建了这个解决方案,但没有按照提议的答案中提出的计时器构建这个解决方案。这是我的 mainapplication.cs:

的代码
    public void OnActivityPaused(Activity activity)
    {
        _lastActivity = DateTime.Now;
    }

    public void OnActivityResumed(Activity activity)
    {
        CrossCurrentActivity.Current.Activity = activity;

        DateTime now = DateTime.Now;
        TimeSpan span = now - _lastActivity;

        if (span.TotalMilliseconds > 2000)
        {
            Notifier.Classes.Settings.IsPinValid = false;
        }

        _lastActivity = now;
    }