Я сделал сообщение здесь: http://forums.xamarin.com/discussion/22386/exit-app-through-back-open-up-again-and-click-on-picker-exception#latest но я также пытаюсь stackoverflow.
Моя проблема в том, что когда я выхожу из приложения и перезапускаю его, а затем нажимаю на средство выбора, возникает исключение. Вот очень простой пример:
public static Page GetMainPage()
{
Picker priorityPicker = new Picker
{
Title = "Priority",
HorizontalOptions = LayoutOptions.Fill
};
// Add all possible priorities
for (int i = 0; i < 5; i++ )
{
//priorityPicker.Items.Add(Priority.PriorityToString(priority));
priorityPicker.Items.Add(i.ToString());
}
return new ContentPage
{
Content = new StackLayout
{
Children = { priorityPicker }
},
};
}
Если я запускаю это, затем выхожу из приложения и перезапускаю приложение (все в эмуляторе), я получаю это исключение:
08-17 23:18:03.247 I/MonoDroid( 2048): UNHANDLED EXCEPTION: Android.Views.WindowManagerBadTokenException: Exception of type 'Android.Views.WindowManagerBadTokenException' was thrown.
08-17 23:18:03.247 I/MonoDroid( 2048): at Android.Runtime.JNIEnv.CallVoidMethod (intptr,intptr) [0x00062] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.14-series/a5d57087/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:490
08-17 23:18:03.247 I/MonoDroid( 2048): at Android.App.Dialog.Show () [0x00043] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.14-series/a5d57087/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.App.Dialog.cs:2497
08-17 23:18:03.247 I/MonoDroid( 2048): at Xamarin.Forms.Platform.Android.PickerRenderer.OnClick () <IL 0x0015e, 0x00626>
08-17 23:18:03.247 I/MonoDroid( 2048): at Xamarin.Forms.Platform.Android.PickerRenderer/PickerListener.OnClick (Android.Views.View) <IL 0x00011, 0x00097>
08-17 23:18:03.247 I/MonoDroid( 2048): at Android.Views.View/IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (intptr,intptr,intptr) [0x00011] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.14-series/a5d57087/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.Views.View.cs:1840
08-17 23:18:03.247 I/MonoDroid( 2048): at (wrapper dynamic-method) object.60b39a4e-8626-4d2b-8134-0e521addd16d (intptr,intptr,intptr) <IL 0x00017, 0x0001f>
08-17 23:18:03.247 I/MonoDroid( 2048):
08-17 23:18:03.247 I/MonoDroid( 2048): --- End of managed exception stack trace ---
08-17 23:18:03.247 I/MonoDroid( 2048): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@b0fe82a0 is not valid; is your activity running?
08-17 23:18:03.247 I/MonoDroid( 2048): at android.view.ViewRootImpl.setView(ViewRootImpl.java:536)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.app.Dialog.show(Dialog.java:286)
08-17 23:18:03.247 I/MonoDroid( 2048): at xamarin.forms.platform.android.PickerRenderer_PickerListener.n_onClick(Native Method)
08-17 23:18:03.247 I/MonoDroid( 2048): at xamarin.forms.platform.android.PickerRenderer_PickerListener.onClick(PickerRenderer_PickerListener.java:29)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.view.View.performClick(View.java:4438)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.view.View$PerformClick.run(View.java:18422)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.os.Handler.handleCallback(Handler.java:733)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.os.Handler.dispatchMessage(Handler.java:95)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.os.Looper.loop(Looper.java:136)
08-17 23:18:03.247 I/MonoDroid( 2048): at android.app.ActivityThread.main(ActivityThread.java:5017)
08-17 23:18:03.247 I/MonoDroid( 2048): at java.lang.reflect.Method.invokeNative(Native Method)
08-17 23:18:03.247 I/MonoDroid( 2048): at java.lang.reflect.Method.invoke(Method.java:515)
08-17 23:18:03.247 I/MonoDroid( 2048): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-17 23:18:03.247 I/MonoDroid( 2048): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-17 23:18:03.247 I/MonoDroid( 2048): at dalvik.system.NativeStart.main(Native Method)
An unhandled exception occured.
Любопытно, что после сбоя я могу повторно запустить приложение, а затем успешно открыть средство выбора. Потом опять провал и так далее. Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: то же самое относится и к DisplayActionSheet.