【发布时间】:2020-06-02 16:42:54
【问题描述】:
我突然想到,在某些情况下,我们的应用程序似乎在后台运行后从头开始重新启动。我设法追踪到MainActivity.OnCreate在以下情况下被称为乘法
- 从 APK 安装应用程序,然后从安装程序运行,在后台应用程序并从主屏幕启动后,它会重置为从头开始
- 此行为一直存在,直到应用程序被终止,然后从主屏幕重新启动
- 应用程序从 Google Play 应用程序运行,在应用程序后台运行并从主屏幕启动后,它会重置为从头开始
- 如果应用在后台运行,然后从 Play 商店启动,则它会正确启动
- 应用程序从主屏幕运行,在应用程序后台运行并从 Google Play 启动后,它会重置为从头开始
当应用程序从最初启动的同一个启动器置于前台时,OnCreate 不会再次被调用。至少有one question reporting a similar behavior,不幸的是,没有为该行为提供解决方案的答案。
当调用MainActivity.OnCreate 时,MainActivity 的实例似乎与初始实例不同,因为在我尝试记录它们时,OnCreate 中设置的私有成员是null,无论如何,应用程序上下文似乎没有从头开始重新创建,因为AppCenter 似乎在第二次运行时立即被初始化,Xamarin.Forms 启动速度更快,静态变量保持其值。
有什么方法可以防止这种行为,只保持MainActivity 的单个实例处于活动状态?
【问题讨论】:
-
我还更新了链接问题:stackoverflow.com/questions/38119936/…