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()); 
     } 
    } 
+0

你让屏幕关闭了吗? – jzeferino

+0

不用了.. @ jzeferino –

+0

什么版本的Xamarin.Android?什么版本的Xamarin.Forms? – SushiHangover

绝对不知道它有什么用它做,但要尽量在你的[活动]添加此标志:

LaunchMode = Android.Content.PM.LaunchMode.SingleTask 

它主要允许保留一个活动的实例始终保持活跃状态​​,即使它背景不清。再次,不确定它会起作用。

只是在刺探它,但Android活动生命周期存在很多奇怪之处。操作系统在破坏,回收等活动方面似乎具有相当大的灵活性。无论如何,无论这是否解决了原始问题,确保处理这些情况是一个不错的主意(例如,确保它在OnCreate/OnResume /等中进行必要的状态恢复)。

尽量给属性属性主要活动

[Activity(
    Label = "MainActivity",ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize 
)] 

可能会有所帮助。