我正在尝试使用以下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消息。我查看了应用的通知设置;我没有为我的任何应用禁用通知。我怎样才能找到这个问题的根源?