我有FormsAppCompatActivity
,每当我在应用处于活动状态时打开屏幕,它就会崩溃。
这些是我承担的步骤:
- 开始调试 - >应用程序很好地显示
- 关闭屏幕 - >应用程序仍附加到调试器
- 打开屏幕 - >设置应用程序的MainPage属性后,应用程序崩溃
我有一个超时,在闲置30秒后,应用程序应调用Logout()
方法并返回登录页面。
当我通过按下主页按钮暂停应用程序时,此代码仍然有效,当我恢复应用程序而不打开和关闭屏幕时。
我已尝试在OnResume
设置延迟,例如:App resuming results in crash with FormsAppCompatActivity
它与Fragments
和Transactions
在状态丢失后被提交有关,但我不知道如何修复它。
抛出的异常是Java.Lang.IllegalStateException: Can not perform this action after onSaveInstanceState
在MyApp.cs中:
public MyApp ()
{
Start(message: string.Empty);
}
private void Start(string message) {
var mainPage = GetMainPage();
MainPage = mainPage; //<-- this crashes
userService.LoggedOut += (sender, e) => {
ThreadPool.Start(() => {
Start (e.Message);
}, ThreadPoolType.Ui);
};
}
protected override void OnSleep ()
{
base.OnSleep ();
sleepDateTime = DateTime.Now;
}
protected override void OnResume () {
base.OnResume();
var delta = DateTime.Now - sleepDateTime;
if (delta.TotalSeconds > SECONDS_FOR_TIMEOUT) {
userService.Logout();
}
}