Xamarin吐司消息仅在模拟器中工作

时间:2018-03-18 17:07:03

标签: c# android xamarin.android android-toast

我正在尝试使用以下C#代码在面向Android的Xamarin应用程序中显示Toast消息:

[Activity(Label = "Storyvoque", MainLauncher = true)]
public class MainActivity : Activity, ICommandExecutionContext, IStoryHostContext, IProgress<string>
...
    public override bool OnOptionsItemSelected(IMenuItem item)
    ...
        try
        {
           RunOnUiThread(() =>
           {
              try
              {
                 using (var toast = Toast.MakeText(this, Resource.String.msg_story_saved, ToastLength.Short))
                    toast.Show();
                 ShowMessage("OK");
              }
              catch (Exception ex)
              {
                 ShowMessage(ex.Message);
              }
           });
        }
        catch(Exception ex)
        {
           ShowMessage(ex.Message);
        }
   ...
   private void ShowMessage(string message)
   {
      RunOnUiThread(() =>
      {
         AlertDialog dlgAlert = new AlertDialog.Builder(this).Create();
         dlgAlert.SetMessage(message);
         dlgAlert.SetButton("Close", (s, args) =>
         {
            dlgAlert.Dismiss();
            dlgAlert.Dispose();
         });
         dlgAlert.Show();
      });
   }

在运行Android 6.0 API Level 23的AVD_for_Nexus_6_by_Google模拟设备中,一切正常。我收到一条Toast消息和一个显示“OK”的消息框。但是当我在运行Android 8.1.0的Nexus 6P上运行相同的应用程序时,会出现“OK”消息,但不会出现toast messsage。即使没有OK消息,也没有出现Toast消息。我查看了应用的通知设置;我没有为我的任何应用禁用通知。我怎样才能找到这个问题的根源?

0 个答案:

没有答案