【问题标题】:Xamarin Cross Platform: UI is reset after sleep and resumeXamarin 跨平台:UI 在睡眠和恢复后重置
【发布时间】:2017-11-16 06:18:44
【问题描述】:

我的应用程序有时会将 UI 重置为初始 UI 状态,就像在第一次初始化之后一样。

当有问题的应用程序被发送到后台/正在休眠时,当我使用另一个应用程序时发生该事件。然后当我改回有问题的应用程序时,它会显示 UI 的初始状态(主页面的初始状态)。

我想我需要先在OnSleep() 事件上最小化应用程序并在OnResume() 事件上恢复它之前保存它的状态。

我该怎么做?

【问题讨论】:

  • 我会阅读 Android 活动生命周期,但听起来您需要做的只是覆盖 OnPause() 以保存任何信息,并覆盖 OnResume() 以加载它。
  • 问题解决了吗?如果没有,能否提供一些您项目的详细代码?

标签: android visual-studio xamarin mobile


【解决方案1】:

我已经解决了这个问题,通过使用全局变量来存储应用程序是否仍在运行。

public MainPage()
    {
        InitializeComponent();

        if(Config.Config._RunningGetLocationThread == true)
        {
            lbl_Title.Text = "Tracker is running...";
            btn_StartTracking.Text = "Stop Tracking!";
        }
        else
        {
            btn_StartTracking.Text = "Start Tracking!";
            lbl_Title.Text = "Tracker is not running";
        }
    }

Config.Config._RunningGetLocationThread == true 是全局变量,在应用程序首次启动时设置为 true。

我认为应该有更好的方法来保存 UI 元素的状态。如果有人知道保存状态 UI 元素的最佳方法,请在此处分享。

【讨论】:

    猜你喜欢
    • 2021-02-07
    • 2020-09-02
    • 1970-01-01
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多