刷新通知栏中的进度条

时间:2010-04-22 09:49:20

标签: android progress-bar notification-bar

我想在通知栏中放置一个进度条。当程序将文件上传到服务器时,想法是显示进度条。其他一切都还可以,但我无法弄清楚如何刷新通知中的进度条。有人知道任何模式吗?我的意思是,我应该在服务或活动中刷新进度条。

3 个答案:

答案 0 :(得分:17)

我不知道你的代码是什么样的,所以我不知道你需要修改什么,但我做了一些搜索文档。我在NotificationsProgressBarsRemoteViews上找到了一些内容。

具体来说,在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();
    }
}

答案 1 :(得分:1)

答案 2 :(得分:0)

要从RemoteView中删除ProgressBar,请使用以下代码: -

 remoteViews.setViewVisibility(R.id.progressBar, View.INVISIBLE);

您也可以使用View.GONE但这将使android填补空白区域。