質問

通知バーに進行状況バーを入れたいと考えています。このアイデアは、プログラムがファイルをサーバーにアップロードしている間、進行状況バーを表示するというものです。他はすべて問題ありませんが、通知内の進行状況バーを更新する方法がわかりません。誰かがプレイするパターンを知っていますか?つまり、サービスやアクティビティなどのどこで進行状況バーを更新する必要があるかということです。

役に立ちましたか?

解決

コードがどのようなものであるかわからないので、何を変更する必要があるのか​​わかりませんが、ドキュメントを調べてみました。でいくつかのものを見つけました 通知, プログレスバー, 、 そして リモートビュー.

具体的には、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();
    }
}

他のヒント

RemoteviewからProgressBarを削除するには、次のコードを使用してください。

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

使用することもできます View.GONE しかし、それはAndroidを空のスペースを埋めるようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top