我正在制作的应用程序具有文件传输功能,并且我会在通知中显示其进度,并提供停止传输的选项。
问题在于,每次调用NotificationManager.notify
时(每次更改进度时都必须调用它),播放系统通知声音(这会导致大量垃圾邮件),以及用于停止传输的按钮变得无法使用。
不更新进度条允许按下“停止传送”按钮。 我注意到的另一件事是,Android 8.x上存在垃圾邮件,而5.x上没有。
创建通知
mBuilder = new NotificationCompat.Builder(cont, "default")
.setSmallIcon(R.drawable.file)
.setContentTitle("File transfer app")
.setContentText((down ? "Downloading " : "Uploading ") + fileName)
.setAutoCancel(false)
.setProgress(100, 0, indeterminate);
Intent notifyButton = new Intent();
notifyButton.setAction("STOP_TRANSFER");
notifyButton.putExtra("id", notifId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(cont, notifId, notifyButton, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.addAction(R.drawable.close, "Stop transfer", pendingIntent);
all.add(this);
mNotificationManager.notify(notifId, mBuilder.build());
更新进度:
mBuilder.setProgress(this.max, progress, indeterminate);
mNotificationManager.notify(notifId, mBuilder.build());
我希望进度条在每次移动时都不会发出声音,因此可以正常更新,并允许我随时取消传输。
我在这里做错什么了吗?
答案 0 :(得分:0)
如果您的更新通知不断地只是为了通知进度,则可能需要调用mNotificationManager.cancel()。
<script>
var floder = '<?php echo $item; ?>';
var path = `images/${folder}/`;
$.ajax({
async: false,
url : path,
success: function (data) {
$(data).find("a").attr("href", function (i, val) {
var imageFolder = val.split("_");
imageFolder = imageFolder[0].toUpperCase();
if( val.match(/\.(jpe?g|png|gif)$/) && imageFolder == folder) {
$(".prodfx").append( "<img src='"+ folder + val +"'>" );
}
});
}
});
</script>