我已经在下面编写了代码,据称,根据我的阅读,应该在按下按钮后立即显示通知,但通知不会弹出。
有人可以向我解释原因吗?
谢谢。
我在活动代码下方添加了布局。 这是活动 这是axml。 答案 0 :(得分:0) 基于Xamarin的文档,您应该创建一个通知通道(API> = 26),并使用以下代码启动通知: 编辑:如果您要针对API 26或更高版本进行编译(在这种情况下是强制性的),则创建通知通道。 PS:完整的xamarin的android通知文档here namespace PresentationNoti
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
Button btn1, btn2;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
btn1 = (Button)FindViewById(Resource.Id.btn1);
btn2 = (Button)FindViewById(Resource.Id.btn2);
btn1.Click += Btn1_Click;
btn2.Click += Btn2_Click;
}
private void Btn2_Click(object sender, System.EventArgs e)
{
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.SetSmallIcon(Resource.Drawable.birthday);
mBuilder.SetContentTitle("It's your birthday");
mBuilder.SetContentText("Happy B-day Birthday Boy/Girl");
Intent resultIntent = new Intent(this, typeof(MainActivity));
TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this);
stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(MainActivity)));
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.AddNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.GetPendingIntent(0, (int)PendingIntentFlags.UpdateCurrent);
mBuilder.SetContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager)GetSystemService(Context.NotificationService);
mNotificationManager.Notify(0, mBuilder.Build());
}
private void Btn1_Click(object sender, System.EventArgs e)
{
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.SetSmallIcon(Resource.Drawable.birthday);
mBuilder.SetContentTitle("It's your birthday");
mBuilder.SetContentText("Happy B-day Birthday Boy/Girl");
NotificationManager mNotificationManager = (NotificationManager)GetSystemService(Context.NotificationService);
mNotificationManager.Notify(0, mBuilder.Build());
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#90aacc">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="basic notification"
android:textColor="#000000"
android:layout_marginTop="15dp"
android:layout_gravity="center"
android:textSize="25sp"
android:id="@+id/btn1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="advanced notification"
android:textColor="#000000"
android:layout_marginTop="15dp"
android:layout_gravity="center"
android:textSize="25sp"
android:id="@+id/btn2"
/>
</LinearLayout>
1 个答案:
var notificationManager = NotificationManagerCompat.From(this);
notificationManager.Notify(NOTIFICATION_ID, builder.Build());