У меня есть опыт разработки. NET веб-приложений, и недавно я начал работать с Android разработкой.
Я обнаружил вопросы, связанные с поддержанием состояния «активность», когда приложение завершается, а затем вновь открыт. Но у меня есть пользователи, которые заполняют форму на странице и по какой-то причине иногда отключают экраны своих устройств во время заполнения формы. Когда они снова включают свои экраны, все введенные данные исчезают, и им приходится вводить все заново. Где мне нужно искать, чтобы узнать, как поддерживать состояние формы, когда это происходит?
Моя целевая Android версия - 8.1 (уровень API 27 - Oreo), и я использую Xamarin. Я даже не совсем понимаю, с чего начать искать эту информацию.
Edit - я собираюсь добавить код из моего файла MainActivity.cs. Я изменил некоторые несущественные вещи для сохранения анонимности:
using Android.App;
using Android.Content.PM;
using Android.Runtime;
using Android.OS;
using System.Linq;
namespace Namespace.Droid
{
[Activity(Label = "Label",
Icon = "@mipmap/ic_launcher",
Theme = "@style/MainTheme",
MainLauncher = true,
WindowSoftInputMode = Android.Views.SoftInput.StateAlwaysHidden,
ConfigurationChanges = ConfigChanges.UiMode,
ScreenOrientation = ScreenOrientation.Portrait)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public static MainActivity Instance;
public bool ArePermissionsGranted = false;
public bool IsWaitingForPermission = true;
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
Acr.UserDialogs.UserDialogs.Init(this);
Rg.Plugins.Popup.Popup.Init(this, savedInstanceState);
Instance = this;
global::Xamarin.Forms.Forms.SetFlags("Shell_Experimental", "Visual_Experimental", "CollectionView_Experimental", "FastRenderers_Experimental");
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
if (grantResults.Any(result => result == Permission.Denied))
{
ArePermissionsGranted = false;
}
else
{
ArePermissionsGranted = true;
}
IsWaitingForPermission = false;
}
}
}