Xamarin Android活动重启自己

时间:2016-07-06 05:46:21

标签: android xamarin xamarin.android xamarin.forms

这个问题已经被问到here,但还没有人回答这个问题。

问题:

我创建了一个Xamarin.Forms应用程序。我正在使用Moto X Developer Edition运行Android 5.1来测试此应用程序。当应用程序启动时,一切运行正常,但如果我保持打开状态并且什么都不做,活动将在几分钟后restart,这会重置我的应用程序的当前状态并转到我的初始登录页面。

测试以确认它是活动还是应用程序:

我有两项活动。一个是SplashScreen活动,MainLauncher,另一个是我的FormsApplication开始。我在两个活动中都使用OnCreate方法保留了断点。在debuge模式下启动我的应用程序并测试上面的场景。几分钟后,FormsApplication启动的活动将点击断点,而不是MainLauncher活动。所以它与我的表单应用程序加载的活动有关,而不是整个应用程序。

我认为通过Android清除应用程序以释放RAM会发生这种情况。但我的申请没有暂停。它专注于屏幕。

我不知道为什么会这样。有人遇到过这个问题吗?

活动

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

3 个答案:

答案 0 :(得分:0)

绝对不确定它与它有什么关系,但尝试在[Activity]标志中添加它:

LaunchMode = Android.Content.PM.LaunchMode.SingleTask

它主要允许始终保持活动的实例,即使它是背景的。再次,不确定它是否会起作用。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试将属性属性赋予主要活动

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

可能会有所帮助。