0

通知を進行中のタイプに設定するためのさまざまな便利なメソッド setOngoing(true) があることを理解しています。しかし、それを別の方法で行うことは可能ですか?FLAG_ONGOING_EVENT を使用したいですか? たとえば、以下の通知コードを進行中のタイプに変更するにはどうすればよいですか?

     new NotificationCompat.Builder(AudioService.this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("My notification")
            .setContentText("Hello World!");
    // Creates an explicit intent for an Activity in your app
    Intent resultIntent = new Intent(AudioService.this, MainActivity.class);

    // The stack builder object will contain an artificial back stack for the
    // started Activity.
    // This ensures that navigating backward from the Activity leads out of
    // your application to the Home screen.
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(AudioService.this);
    // Adds the back stack for the Intent (but not the Intent itself)
    stackBuilder.addParentStack(MainActivity.class);
    // Adds the Intent that starts the Activity to the top of the stack
    stackBuilder.addNextIntent(resultIntent);
    PendingIntent resultPendingIntent =
            stackBuilder.getPendingIntent(
                0,
                PendingIntent.FLAG_UPDATE_CURRENT
            );
    mBuilder.setContentIntent(resultPendingIntent);
    NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    // mId allows you to update the notification later on.
    mNotificationManager.notify(mId, mBuilder.build());
4

1 に答える 1

3

フラグは通知に直接設定できます。そのためには、.build()メソッドから結果を取得し、flagsフィールドを使用します。

これは、「進行中のイベント」フラグを既存のものに追加する例です。

Notification note = mBuilder.build();
note.flags |= Notification.FLAG_ONGOING_EVENT;
mNotificationManager.notify(mId, note);

を呼び出すのと同じはずmBuilder.setOngoing(true)です。

于 2012-10-19T09:33:34.703 に答える