Android 背景接地后StackLayout不会重新出现
我目前正在开发一个Xamarin.Forms应用程序,每15秒查询一次API更新。我使用了Android 背景接地后StackLayout不会重新出现,android,xamarin,xamarin.forms,Android,Xamarin,Xamarin.forms,我目前正在开发一个Xamarin.Forms应用程序,每15秒查询一次API更新。我使用了MessagingCenter来执行这个长时间运行的任务,因为即使应用程序是后台的,它也会继续运行。我目前只为Android项目添加了这段代码,因为它使用了服务,我是从这段代码开始工作的,并对其进行了轻微调整以满足我的要求: 当任务接收到它的有效负载时,它将信息呈现为构成页面主要内容的StackLayout的子级。(如果有区别,页面将放在标签夹中) 虽然该应用程序位于前台,但一切正常,一旦它处于后台,它仍然
MessagingCenter
来执行这个长时间运行的任务,因为即使应用程序是后台的,它也会继续运行。我目前只为Android项目添加了这段代码,因为它使用了服务
,我是从这段代码开始工作的,并对其进行了轻微调整以满足我的要求:
当任务接收到它的有效负载时,它将信息呈现为构成页面主要内容的StackLayout
的子级。(如果有区别,页面将放在标签夹中)
虽然该应用程序位于前台,但一切正常,一旦它处于后台,它仍然可以正常工作,没有任何问题。我可以从控制台看到,该应用程序仍在进行正确的API调用并接收正确的数据,但一旦该应用程序返回前台,StackLayout
和页面上的所有内容都会重新加载,就像第一次打开应用一样
然后我仍然尝试使用x:Name
更新StackLayout
,并且没有收到任何错误,但是屏幕上没有任何更改
我甚至尝试过在没有更改的情况下更改BackgroundColor
,但是如果我Console.WriteLine(layout.BackgroundColor.ToString())代码>它将产生新的颜色,而不是屏幕上的颜色
我担心的是,当它返回前台时,它正在创建一个新的布局,但在内存中保留旧的布局,因此任何代码都在对旧版本进行更改,而不是对屏幕上的新版本进行更改
如果有人能以我能理解的方式解释这种行为并提出解决方案,我将不胜感激。您在发布模式中注意到这种行为了吗?正如您所描述的,我遇到了一些问题,但我正在调试模式下检查,而且,在使用后台服务甚至广播接收器时,有很多东西确实无法按预期工作。调试和发布时都必须测试并遇到相同的问题。再试一次:卸载先前版本的共享运行时和在调试中进行部署时自动安装的另一个xamarin包模式这似乎是XF上的一个问题,我无法理解=/卸载了与mono或xamarin相关的任何内容,但不幸的是,同样的问题。那篇文章看起来很有趣,所以我会留出一些时间看看答案是否在里面。对不起。如果你得到答案,请分享。这会有帮助的。好运气你在发布模式中注意到了这种行为吗?正如您所描述的,我遇到了一些问题,但我正在调试模式下检查,而且,在使用后台服务甚至广播接收器时,有很多东西确实无法按预期工作。调试和发布时都必须测试并遇到相同的问题。再试一次:卸载先前版本的共享运行时和在调试中进行部署时自动安装的另一个xamarin包模式这似乎是XF上的一个问题,我无法理解=/卸载了与mono或xamarin相关的任何内容,但不幸的是,同样的问题。那篇文章看起来很有趣,所以我会留出一些时间看看答案是否在里面。对不起。如果你得到答案,请分享。这会有帮助的。祝你好运