Xamarin Android活动自行重启
这个问题已经被问到here,但还没有人回答这个问题。Xamarin Android活动自行重启
问题:
我创建了一个Xamarin.Forms
应用。我正在使用Moto X Developer Edition
运行Android 5.1
来测试此应用程序。当应用程序启动时,一切都运行正常,但如果我保持打开状态并且什么也不做,几分钟后活动将会返回restart
,这会重置我的应用程序的当前状态并进入我的初始登录页面。
测试,以确认它是否是活动或应用程序:
我有两个活动。一个是SplashScreen
活动,它是MainLauncher
,另一个是我的FormsApplication
开始的地方。我在这两项活动中都保留了断点OnCreate
方法。以颠覆模式启动我的应用程序并测试上述场景。几分钟后,我的FormsApplication
开始的活动将触发断点而不是MainLauncher活动。所以它是与我的表单应用程序加载的活动有关,而不是整个应用程序。
我认为这会发生在Android清理应用程序以释放内存。但我的应用程序没有暂停。它专注于屏幕。
我不知道为什么会发生这种情况。有没有人遇到过这个问题?
活动
[Activity(Label = "SplashScreenActivity", Theme = "@style/Theme.Main", ScreenOrientation = ScreenOrientation.Portrait)]
public class SplashScreenActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
}
绝对不知道它有什么用它做,但要尽量在你的[活动]添加此标志:
LaunchMode = Android.Content.PM.LaunchMode.SingleTask
它主要允许保留一个活动的实例始终保持活跃状态,即使它背景不清。再次,不确定它会起作用。
只是在刺探它,但Android活动生命周期存在很多奇怪之处。操作系统在破坏,回收等活动方面似乎具有相当大的灵活性。无论如何,无论这是否解决了原始问题,确保处理这些情况是一个不错的主意(例如,确保它在OnCreate/OnResume /等中进行必要的状态恢复)。
尽量给属性属性主要活动
[Activity(
Label = "MainActivity",ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize
)]
可能会有所帮助。
你让屏幕关闭了吗? – jzeferino
不用了.. @ jzeferino –
什么版本的Xamarin.Android?什么版本的Xamarin.Forms? – SushiHangover