前台服务 - 设置不确定的进度条
Posted
技术标签:
【中文标题】前台服务 - 设置不确定的进度条【英文标题】:Foreground service - Setting an indeterminate progress bar 【发布时间】:2021-12-25 05:56:04 【问题描述】:我正在使用indeterminate progress bar
创建前台服务。
public Notification createNotification()
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_TEST)
.setSmallIcon(R.drawable.ic_download_complete)
.setContentTitle("Test title")
.setContentText("Test content")
.setProgress(someInt, someInt, true) //What do I set for these two params before the boolean flag
.setPriority(NotificationCompat.PRIORITY_LOW)
.setAutoCancel(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationManager notificationManager = this.getSystemService(NotificationManager.class);
NotificationChannel channel = new NotificationChannel(
CHANNEL_TEST,
"Test notification",
NotificationManager.IMPORTANCE_LOW
);
notificationManager.createNotificationChannel(channel);
notificationManager.notify(NOTIFICATION_ID, builder.build());
return builder.build();
我试图了解我必须为.setProgress
中的两个 int 参数设置什么值。该方法中的最后一个布尔标志用于将其设置为确定或不确定progressbar
。因此,如果它是确定的,我们可以将两个整数更新为我们想要的百分比.setProgress(100, 10, true)
,但是对于不确定我应该将值设置为什么?
我尝试检查该方法,但它并没有完全说明要使用什么来确定不确定性。由于传递 null 不是一种选择
【问题讨论】:
【参考方案1】:As per documentation:
显示不确定的进度条(不指示 完成百分比),调用 setProgress(0, 0, true)。结果是一个 与上面的进度条具有相同样式的指示器,除了 进度条是连续动画,不表示 完成。
因此,您需要将两个int
值设置为0
【讨论】:
以上是关于前台服务 - 设置不确定的进度条的主要内容,如果未能解决你的问题,请参考以下文章
.NET MVC中使用WebClient在后台下载文件,前台显示进度。