显示进度的核心方法 setProgress() , 正如一般使用中所见,有显示进度百分比的 和 显示正在进行的两种进度条:
显示 fixed-duration Progress indicater(持续时间固定的进度指示器)
使用 setProgress(max, progress, false) 将进度栏添加到通知,然后发出通知,随着操作的继续进行,递增process并更新通知
一般把 max 设置为 100,以百分比的形式递增,完成操作后,可以将进度条栏删除(调用setProgress(0, 0, false)),或者保留显示。一定要更新通知文本显示操作已完成
mNotifyManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mBuilder = new NotificationCompat.Builder(this);
mBuilder.setContentTitle("Picture Download")
.setContentText("Download in progress")
.setSmallIcon(R.drawable.ic_notification);
// 新建一个后台线程,来完成进度条的更新
new Thread(
new Runnable() {
@Override
public void run() {
int incr;
// Do the "lengthy" operation 20 times
for (incr = 0; incr <= 100; incr+=5) {
// 设置新的百分比
mBuilder.setProgress(100, incr, false);
// 发送通知
mNotifyManager.notify(0, mBuilder.build());
//暂停几秒
try {
// Sleep for 5 seconds
Thread.sleep(5*1000);
} catch (InterruptedException e) {
Log.d(TAG, "sleep failure");
}
}
// 完成后改变文本状态
mBuilder.setContentText("Download complete")
// 删除进度条
.setProgress(0,0,false);
mNotifyManager.notify(ID, mBuilder.build());
}
}
).start();
显示持续Activity的指示器
使用的 setProgress(0, 0, true) 前两个参数可以忽略,最后一个参数表示这个指示器是不确定的
这样从发布开始,动画会一直进行,直到你发出更新通知

1581

被折叠的 条评论
为什么被折叠?



