通知バーの進行状況バーを更新する
-
01-10-2019 - |
質問
通知バーに進行状況バーを入れたいと考えています。このアイデアは、プログラムがファイルをサーバーにアップロードしている間、進行状況バーを表示するというものです。他はすべて問題ありませんが、通知内の進行状況バーを更新する方法がわかりません。誰かがプレイするパターンを知っていますか?つまり、サービスやアクティビティなどのどこで進行状況バーを更新する必要があるかということです。
解決
コードがどのようなものであるかわからないので、何を変更する必要があるのかわかりませんが、ドキュメントを調べてみました。でいくつかのものを見つけました 通知, プログレスバー, 、 そして リモートビュー.
具体的には、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を空のスペースを埋めるようにします。
所属していません StackOverflow