1

アプリが閉じられていても、デバイスがインターネットに接続されるたびに、オフライン中に受信したメッセージについてユーザーに通知したい. GCM Network Manager を使用することが問題を解決する 1 つの方法であることがわかったので、 GCM Network Manager の使用方法に関するこのチュートリアルに従い、サンプル コードに通知を表示する関数を追加しました。この関数は、ブロードキャストレシーバーが呼び出されるたびに呼び出されます。

ここにコードがあります

.....
.......
mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
    mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String taskId = intent.getStringExtra(CodelabUtil.TASK_ID);
            String status = intent.getStringExtra(CodelabUtil.TASK_STATUS);

            mTaskAdapter.updateTaskItemStatus(taskId, status);
            Notify("TEST", "TEST", context, intent);
        }
    };



private void Notify(String notificationTitle, String notificationMessage, Context ctx, Intent intent){
        Log.i("TEST", "Notify is called");
        NotificationManager manager;
        manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification myNotication;
        //Intent intent = new Intent("com.google.codelab.networkmanager");

        PendingIntent pendingIntent = PendingIntent.getActivity(ctx, 1, intent, 0);

        Notification.Builder builder = new Notification.Builder(ctx);

        builder.setAutoCancel(false);
        builder.setContentTitle(notificationTitle);
        builder.setContentText(notificationMessage);
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentIntent(pendingIntent);

//
        //builder.build();

        myNotication = builder.getNotification();
        manager.notify(11, myNotication);

    }

問題は、アプリがフォアグラウンドにあるときにのみ通知が表示され、アプリが閉じているときは常に表示されないことです.

私がしなければならないことはありますか?ありがとうございました。(下手な英語でごめんなさい)

4

0 に答える 0