C# 如何避免创建没有内容的空白通知弹出窗口
我有一个创建持续通知的服务,如下所示。我需要创建此通知的唯一原因是,我希望在应用程序关闭时保持服务运行 我不想在通知中显示任何内容。但每次创建此通知时,它都会向用户显示一个空白的弹出窗口,这很烦人,而且不会消失很长时间。我怎样才能避免呢C# 如何避免创建没有内容的空白通知弹出窗口,c#,android,xamarin,notifications,foregroundnotification,C#,Android,Xamarin,Notifications,Foregroundnotification,我有一个创建持续通知的服务,如下所示。我需要创建此通知的唯一原因是,我希望在应用程序关闭时保持服务运行 我不想在通知中显示任何内容。但每次创建此通知时,它都会向用户显示一个空白的弹出窗口,这很烦人,而且不会消失很长时间。我怎样才能避免呢 var _notificationBuilder = new NotificationCompat.Builder(this, channelId) .SetSmallIcon(Resource.Mipmap.icon) .SetPriority((
var _notificationBuilder = new NotificationCompat.Builder(this, channelId)
.SetSmallIcon(Resource.Mipmap.icon)
.SetPriority((int)Android.App.NotificationPriority.Min)
.SetOnlyAlertOnce(true)
.SetOngoing(true);
var notification = _notificationBuilder.Build();
StartForeground(SERVICE_RUNNING_NOTIFICATION_ID, notification);
notificationBuilder只是一个创建通知弹出窗口的对象 如果您想实现一种用户解除通知的方法,请应用该选项
SetOngoing (false)
如果你想添加一些文字
setContentTitle(messageTitle)
setContentText(messageBody)
如果您根本不想收到任何通知,可以删除所有NotificationCompat代码。它与服务无关。根据Android文档,在使用前台服务时,必须为状态栏提供不可拒绝的通知,即使您试图通过设置最小优先级来隐藏通知,它也会用默认行为替换。有关详细信息,请参阅“” 永久性服务可能会占用大量系统资源并降低设备运行速度,因此Android会设置限制以避免滥用,但它也提供了几种方法,其中之一是“PeriodicWorkRequest”,它可以在应用程序关闭的情况下运行,在满足条件时,甚至在设备重新启动时,也可以恢复运行。但它有一些限制,比如:最大运行时间10分钟,最小重复间隔15分钟 要使用WorkManager,您需要首先创建Worker类,比如CalculatorWorker,然后构建workrequet以每20分钟运行一次:
PeriodicWorkRequest taxWorkRequest = PeriodicWorkRequest.Builder.From<CalculatorWorker>(TimeSpan.FromMinutes(20)).Build();
这不是创建后台服务的方法。我不能使用IntentService,因为我的服务假设每分钟都在无限时间拉取数据,并且我的应用程序应该能够在任何时候从服务读取数据。这是我发现的最接近实际的解决方案,但它需要绑定前台通知,否则服务将被破坏。你能告诉我做后台服务的正确方法吗?
WorkManager.Instance.Enqueue(taxWorkRequest);