###前提・実現したいこと
XamarinとC#を使ったAndroidアプリ。
1つのActivityのみを持つアプリで、バックボタンを押した際に一度確認のダイアログを出し、そこで終了するという選択をしてはじめてアプリが終了されるようにしたい。
###発生している問題・エラーメッセージ
Releaseビルド時にオーバーライドしたOnBackPressedが正常に呼び出されず、ダイアログが表示されないまま終了してしまう。 Debugビルド時には正常に呼び出され、ダイアログが表示される。 ダイアログの挙動は問題なし。 エラーメッセージはない。 全て実機におけるテストの結果。
###事象の発生しているコード
MainActivity.cs
using Android.App; using Android.Widget; using Android.OS; using Android.Content; namespace App1 { [Activity(Label = "Score", MainLauncher = true, Icon = "@drawable/icon", ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait)] public class MainActivity : Activity { (中略) public override void OnBackPressed() { AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.SetTitle("Terminate Check"); alert.SetMessage("Really?"); alert.SetNegativeButton("No", (sender, args) => { }); alert.SetPositiveButton("Yes", (sender, args) => { Finish(); }); alert.Show(); } protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); (中略) } } }
###補足情報(言語/FW/ツール等のバージョンなど)
Visual Studio Community 2017、Xamarin、C#を使用。
テストに使用した端末はXperia XZ、Androidのバージョンは7.0。
(追加:Nexus 9(Androidのバージョンは5.0)でも同様の現象が発生。)
回答1件
あなたの回答
tips
プレビュー