Android应用程序生命周期

时间:2017-06-06 10:38:13

标签: android xamarin.android mvvmcross android-lifecycle background-foreground

我看到很多关于活动生命周期的答案,而且大多数情况下我都很清楚。我正在寻找的是应用程序生命周期。我有以下情况:

  1. 申请开始 - 无效PIN
  2. 如果PIN无效
  3. ,则必须输入PIN码
  4. 应用程序已落后(Android主屏幕可见) - 无效PIN
  5. 应用程序是有前景的(应用程序再次可见) - 转到步骤2
  6. 使用活动生命周期,即使不是不可能,也很难实现。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

受到解决方案的启发,Doomsknight指出我构建了这个解决方案而没有提出的答案中提出的Timer。这是来自我的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;
    }

答案 1 :(得分:0)

当您的应用程序背景化(不再可见)时,调用的方法为onStop(),当应用程序被预设时,将调用onStart()然后onResume()({{1}也可以被调用。)

问题是,您应该做的是onCreate()中的PIN无效,然后在onStop()中询问PIN码。这将始终使您的应用程序要求输入PIN:第一次启动应用程序以及应用程序何时进行后台处理。

答案 2 :(得分:0)

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

  2. 获取onCreateonStartonResume()中的图钉(检查图钉的状态。

  3. 3.应用程序背景 - onPause() - 在onPause()方法上使您的引脚无效

    4.应用是前瞻性的 - onResume() - 在onResume()中执行第2步