我想在通知栏中放置一个进度条。这个想法是在程序将文件上传到服务器时显示进度条。其他一切正常,但我不知道如何刷新通知内的进度条。有谁知道什么模式可以玩吗?我的意思是,我应该在哪里刷新进度条,在服务或活动中等等。
发布于 2010-04-28 05:19:10
我不知道你的代码是什么样子的,所以我不知道你需要修改什么,butI在文档中做了一些搜索。我在Notifications,ProgressBars和RemoteViews上找到了一些东西。
具体来说,在RemoveView中,您可以更新进度栏。因此,结合每个链接中的一些示例代码,我得到了如下内容:
public class MyActivity extends Activity {
private static final int PROGRESS = 0x1;
private static final int MAX_PROGRESS = 100;
private int mProgressStatus = 0;
private Handler mHandler = new Handler();
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
//define Notification
//...
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
contentView.setProgressBar(R.id.progress_bar, MAX_PROGRESS, mProgressStatus, false);
notification.contentView = contentView;
// Start file upload in a background thread
new Thread(new Runnable() {
public void run() {
while (mProgressStatus < MAX_PROGRESS) {
mProgressStatus = doWork();
// Update the progress bar
mHandler.post(new Runnable() {
public void run() {
contentView.setProgressBar(R.id.progress_bar, MAX_PROGRESS, mProgressStatus, false);
}
});
}
}
}).start();
}
}
发布于 2010-04-28 04:58:00
发布于 2013-12-25 19:12:34
要从RemoteView中删除ProgressBar,请使用以下代码:-
remoteViews.setViewVisibility(R.id.progressBar, View.INVISIBLE);
你也可以使用View.GONE
,但那会让安卓填补空白。
https://stackoverflow.com/questions/2689729
复制相似问题