iOS 上的 OnAppearing 方法

2023-12-21

当我的应用程序位于后台并转到前台时,OnAppearing() 方法在 IOS 中不起作用,或者当手机锁定然后解锁并且应用程序位于前台时,不会调用 OnAppearing() 方法,在 Android 上一切正常。 我在下面找到了这个指南,但仍然不起作用,我有最新版本的 xamarin 表单。

Guide: https://kent-boogaart.com/blog/hacking-xamarin.forms-page.appearing-for-ios https://kent-boogaart.com/blog/hacking-xamarin.forms-page.appearing-for-ios

谁能帮我?


正如您所看到的,iOS 中的“生命周期”是不同的。一种有用的方法是使用应用程序生命周期并将其绑定到Page事件(或命令,如果需要)。

在您的应用程序子类中添加几个公共事件处理程序并将它们绑定到 OnResume (如果需要,还可以添加 OnSleep)

public partial class App : Application
{
    public EventHandler OnResumeHandler;
    public EventHandler OnSleepHandler;

    public App()
    {
        InitializeComponent();
        MainPage = new MyPage();
    }

    protected override void OnSleep()
    {
        OnSleepHandler?.Invoke(null, new EventArgs());
    }

    protected override void OnResume()
    {
        OnResumeHandler?.Invoke(null, new EventArgs());
    }
}

现在在你的ContentPage子类,添加一个处理程序来跟踪该页面何时从后台返回,类似于“OnPause 后的 OnAppearing”处理程序...

void Handle_OnResumeHandler(object sender, EventArgs e)
{
    Console.WriteLine("OnPauseResumeWithPage");
}

protected override void OnAppearing()
{
    (App.Current as App).OnResumeHandler += Handle_OnResumeHandler;
    base.OnAppearing();
}

protected override void OnDisappearing()
{
    (App.Current as App).OnResumeHandler -= Handle_OnResumeHandler;
    base.OnDisappearing();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 上的 OnAppearing 方法 的相关文章

随机推荐

  • db.create_all() 'NoneType' 对象没有属性 'drivername'

    我正在关注 CS50 的使用 Python 和 Javascript 的 Web 编程 在 Lecture4 中 我在尝试创建 postgresql 数据库表时遇到以下错误 Traceback most recent call last F
  • 有没有更好的方法来处理 Json.Net 的编码值?

    我正在使用 Json Net 序列化 反序列化一个具有 System Text Encoding 类型属性的类 尝试一个简单的测试 我的类序列化没有任何问题 public class TestClass public Encoding Th
  • 是否可以通过 API 为授权信用卡交易“获取资金”?

    可以将 Bigcommerce 与信用卡处理机构 例如 Braintree 集成 这样付款仅在默认情况下获得授权 并且需要第二步来获取资金 Bigcommerce 使这些交易处于 等待付款 状态 并提供 UI 以通过管理界面启动捕获所述资金
  • 长按时进行选择但不显示上下文菜单的编辑文本?

    我想提供剪切 复制文本的自定义处理程序 长按目标 上下文菜单不应出现 可以使用跟踪器 或拖动器 选择文本 UPDATE protected void onCreate Bundle savedInstanceState super onCr
  • 寻找等权图的最短路径

    我有一个权重相等的图表 我怎样才能找到最短路径 我们可以用DijKstra s Algorithm并找到最短路径 我认为在这种情况下会使用回溯 但是 当图的权重相等时 还有其他方法可以找到最佳的最短路径吗 BFS 是获得从一个节点到另一个节
  • 无法使用 pip 安装任何软件包我收到此错误 ImportError: Cannot import name 'appdirs'

    当我尝试使用 pip 安装任何软件包或使用 pip 时 出现以下错误 ImportError cannot import name appdirs 一个例子 pip install tweepy Traceback most recent
  • subprocess.check_output返回码

    我在用 grepOut subprocess check output grep search tmp shell True 要运行终端命令 我知道我可以使用 try except 来捕获错误 但如何获取错误代码的值 我在官方文档中找到了这
  • 创建无公共IP地址的EMR集群

    出于安全原因 我希望创建一个 EMR 集群 其中没有为任何实例分配公共 IP 地址 我已经能够在我的 VPC 中启动集群 并使用我自己的自定义安全组 但由于某种原因 默认情况下所有节点都分配了一个公共 IP 地址 我在 EMR CLI 文档
  • org.apache.http.entity.ContentType 不再在 Apache 中了吗?

    由于某种原因 我无法导入 org apache http entity ContentType 我添加了 Apache HTTP 4 3 3 client core 公共编解码器 httpclient 缓存 公共日志记录 httpmime
  • 单击除特定 div 之外的正文

    我想做点什么 点击body 除了menutop这是里面的body div lorem ipsum div js body not menutop click function console log 323 也尝试过 var n menut
  • 如何欺骗应用程序认为其标准输出是终端,而不是管道

    我正在尝试做与 相反 的事情检测 stdin 是终端还是管道 https stackoverflow com questions 1312922 detect if stdin is a terminal or pipe in c c qt
  • 当 AsyncTasks 运行时处理屏幕方向变化

    我已经被这个困扰有一段时间了 当我有一个单独的屏幕时 如何正确处理屏幕方向的变化Thread AsyncTask跑步 目前 我有 android configChanges orientation keyboard keyboardHidd
  • Gradle def 与 ext

    使用有什么区别ext varname and def varname 例如 下面的代码似乎工作相同 task copyLicenses def outDir project buildDir absolutePath reports lic
  • jQuery Mobile 选择器菜单的代码?

    我一定错过了一些明显的东西 我正在查看 jQuery Mobile 的文档 但他们没有为您提供执行他们正在演示的操作的代码 我正在尝试创建一个选择器菜单 我在哪里可以获得此代码 它必须像一行 对吧 作为一个完全的新手 我在这里不知所措 谢谢
  • 如何使用 Windows 窗体创建自定义用户按钮/控件并将其与线条连接

    我正在尝试创建一些自定义按钮或用户控件 如建议的 GUI 中所示 功能应如下所示 图表或配置以图形方式创建 可以从工具栏拖动控件或通过鼠标右键单击 下拉菜单插入控件 通过从一个控件拖动到另一个控件 它们应该通过线连接 切换应该将视图从带有选
  • scapy.sr 和 scapy.srp 之间的差异

    我正在使用 Scapy 扫描我的网络 但看不到功能之间的差异 scapy sr and scapy srp 文档说scapy sr 返回数据包来自layer 3 and scapy srp 返回数据包来自layer 2 这些层是什么 抱歉我
  • 使用参数变量 Unity 加载场景

    在我的游戏中 有一个地图视图 其中包含 50x50 的图块网格 当你点击图块时 你会被发送到该图块视图并攻击事物等 就代码而言 这些 图块 之间的唯一区别是图块 ID 即 网格上的哪个数字 该数字将在 init 时传递给服务器来处理其余部分
  • 调用 ~Derived() 和 ~Base() 之间对象的状态

    Question C 标准对对象当时的状态有何保证 在派生类的析构函数执行之后 但在基类的析构函数执行之前 这是调用派生类的子对象的析构函数的时间 Example include
  • 尝试使用风味时 Flutter 应用程序构建失败

    我正在尝试在我的应用程序中使用风味 我遵循了各种指南 但每次都因同样的问题而无法构建 因为基本上每个博客文章和 SE 问题都引用相同的文章和资源 所以我不会再这样做了 为了调试 我决定简化问题并启动一个新项目 正常示例项目 并添加风味 每种
  • iOS 上的 OnAppearing 方法

    当我的应用程序位于后台并转到前台时 OnAppearing 方法在 IOS 中不起作用 或者当手机锁定然后解锁并且应用程序位于前台时 不会调用 OnAppearing 方法 在 Android 上一切正常 我在下面找到了这个指南 但仍然不起