2017-10-06 9 views
0

複数の進捗通知を1つの通知にまとめようとしています。 Androidのダウンロードマネージャとまったく同じようにchromeから複数のファイルをダウンロードすると、ダウンロード中に1つの通知として表示されます。私はこれをどのようにして行うのですか?私は以下のコードを持っていますが、別の通知として各ダウンロードを表示します。進捗通知を結合する方法

メイン

mNotifyManager = (NotificationManager) mActivity.getSystemService(Context.NOTIFICATION_SERVICE); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) createNotificationChannel(); 
    mBuilder = new NotificationCompat.Builder(mActivity, "FileUpload") 
      .setSmallIcon(android.R.drawable.stat_sys_upload) 
      .setColor(ContextCompat.getColor(mActivity, R.color.colorNotification)) 
      .setContentTitle(new File(mFilePath).getName()) 
      .setContentText(mActivity.getResources().getString(R.string.app_name)) 
      .setGroup(NOTIFICATION_GROUP) 
      .setProgress(0, 0, true); 

    mNotifyManager.notify(2312, mBuilder.build()); 

OnProgress

docsから
@Override 
    public void onProgress(String filePath, double progress, long uploadedBytes, long totalBytes) { 
    mBuilder.setProgress(100, (int) (progress * 100), false); 
    mNotifyManager.notify(2312, mBuilder.build()); 
    } 

答えて

0

:それは更新できるように

NotificationManagerを呼び出すことにより、 通知IDを持つ問題にそれを通知を設定するには.notify(ID、 通知)。この通知を発行した後にこの通知を更新するには、 NotificationCompat.Builderオブジェクトを更新または作成し、 通知オブジェクトを構築し、これまでに使用したのと同じ IDの通知を発行します。

通知をグループ化するには、次の手順を実行します。 は(KEY_NOTIFICATION_GROUPは、グループのための文字列のキーです)グループの通知を作成します。

Notification groupNotification = new NotificationCompat.Builder(this) 
     .setGroup(KEY_NOTIFICATION_GROUP) 
     .setGroupSummary(true) 
     // Customize the notification here. 
     .build(); 

次に、このように、このグループに通知を追加します。この場合の通知であること

Notification notification = new NotificationCompat.Builder(this) 
     .setGroup(KEY_NOTIFICATION_GROUP) 
     // Customize the notification here. 
     .build(); 

Source

注意異なるIDを持つ必要があります。

+0

これはDownloadManagerのように通知に追加されません。これにより、新しいダウンロードが元のファイルと置き換わります。 –

+0

答えを更新しました。 –

+0

私のコードで見ることができるように既にグループがあります –

関連する問題