5

whatsapp や sms 通知と同じように通知ビューを作成したいのですが、どうすればそれを達成できますか。

ここに画像の説明を入力

今まで探してきたもの

クルトン:ここにあります

これにより、実行中のアクティビティとその下のアクションバーにクルトンが表示されます。アクティビティが実行されていない場合、または他のアクティビティを実行している場合、これをどのように処理できますか。

トースト: これはトーストのようには見えません。下部または中央にのみ表示されます。

ダイアログ: これはこのように実行できますが、アプリケーションがぼやけてしまいます。背景を無効にします。そして、私はこれを望んでいません

任意のソリューションをいただければ幸いです。

ありがとう

4

3 に答える 3

12

これは、android lollipop から動作するヘッドアップ通知です。通知を表示する方法を確認します。ここでhttp://developer.android.com/guide/topics/ui/notifiers/notifications.html を確認できます。ヘッドアップの場合は、通知の優先度を次のように設定する必要があります。下

.setPriority(Notification.PRIORITY_HIGH)

それが役に立てば幸い

11月17日編集

Notification.PRIORITY_HIGHは API レベル 26 で廃止されました。代わりに(NotificationManager.IMPORTANCE_HIGH)を使用してください。

于 2015-09-29T13:50:31.793 に答える
6

これは、Headsup 通知を介して行うことができます。Andorid L の機能なので、ここのコードはデモです

Notification createNotification(boolean makeHeadsUpNotification) {
    Notification.Builder notificationBuilder = new Notification.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setPriority(Notification.PRIORITY_DEFAULT)
            .setContentTitle("Sample Notification")
            .setContentText("This is a normal notification.");

    if(Build.VERSION.SDK_INT> Build.VERSION_CODES.KITKAT)
    {
        notificationBuilder.setCategory(Notification.CATEGORY_MESSAGE);
    }
    if (makeHeadsUpNotification) {
        Intent push = new Intent();
        push.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        push.setClass(this, IndexActivity.class);

        PendingIntent fullScreenPendingIntent = PendingIntent.getActivity(this, 0,
                push, PendingIntent.FLAG_CANCEL_CURRENT);
        notificationBuilder
                .setContentText("Heads-Up Notification on Android L or above.")
                .setFullScreenIntent(fullScreenPendingIntent, true);
    }
    return notificationBuilder.build();
}

あなたはそれを次のように呼び出すことができます

 NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context
           .NOTIFICATION_SERVICE);
    mNotificationManager.notify(NOTIFICATION_ID, createNotification(
           true));
于 2015-09-30T06:53:05.790 に答える