0

私のアプリケーションは全画面モードで実行する必要があります。また、新しいアイテムがサーバーからアプリに到着したときに通知バーを表示する必要があります。BroadcastReceiver クラスに通知用のコーディングを記述します。MainActivity で、新しい通知を受け取ったときにのみステータス バーを表示するように決定したいと思います。それ以外の場合は、ステータス バーを非表示にします。アプリがフォアグラウンドにあるときにすべてが行われます。

通知のコーディング:

Intent scheduledIntent = new Intent(context,Activity.class);

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, scheduledIntent, 0);

                nm = (NotificationManager) context
                        .getSystemService(Context.NOTIFICATION_SERVICE);
                CharSequence from = "From address";
                CharSequence message = "New Orders received";
                Notification notif = new Notification(R.drawable.icon,"Hai", System.currentTimeMillis());
                notif.setLatestEventInfo(context, from, message, pendingIntent);
                notif.flags |= Notification.FLAG_AUTO_CANCEL;
                nm.notify(uniqueID, notif);
                notif.ledOnMS = 500;
                notif.ledOffMS = 500;

このコードを通じて通知が受信されます。ただし、ステータス バーは常に表示されます。通知が届かないときは非表示にする必要があります。これを行う正しい方法を教えてください。

前もって感謝します、

4

1 に答える 1

0

OnCreate() メソッドでは、次のように記述する必要があります。

 AppPreferences prefs = new AppPreferences(PresentChatActivity.this);
             boolean notify_checkbox = prefs.getNotifyState();

    Notification(message.getBody(),fromName, name);

次に、OnCreate() の外側に、この関数を記述します。

   protected void Notification(String body, String fromName, String Notificationmsg) {

    NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);      

    String tickerText = getString(R.string.app_name, body);
    Notification notif = new Notification(R.drawable.ic_launcher, tickerText,
            System.currentTimeMillis());

    Intent notificationIntent = new Intent(this, PresentChatActivity.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);


     notif.setLatestEventInfo(PresentChatActivity.this,Notificationmsg, message, pendingIntent);
     notif.setLatestEventInfo(getApplicationContext(), fromName, body,pendingIntent );  
     notificationManager.notify(10001, notif);
     }
于 2012-09-07T04:29:45.043 に答える