GcmIntentService点击通知后打开片段

时间:2016-04-13 05:07:57

标签: android android-fragments

任何人都可以帮我构建我的代码。

我想在点击通知后打开片段。

这是我的代码。

在我的 GcmIntentService 中,我有这段代码。

private void sendNotification(String ttl,String msg, String type, String src) {
        mNotificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);

        Intent notificationIntent = new Intent(this, MainActivity.class);
        notificationIntent.putExtra("menuFragment", "favoritesMenuItem");

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0);


            Bitmap bitmap_logo = BitmapFactory.decodeResource(this.getResources(), R.drawable.m);
            Bitmap bitmap_image=getBitmapFromURL(src);
            NotificationCompat.Builder mBuilder =
                    new NotificationCompat.Builder(this)
                            .setContentTitle(ttl)
                             .setContentText(msg)
                            .setLargeIcon(bitmap_logo)
                            .setSmallIcon(R.drawable.m)
                            .setStyle(new NotificationCompat.BigPictureStyle()
                                    .bigPicture(bitmap_image)
                                    .setBigContentTitle(ttl)
                                    .setSummaryText(msg))
                            .setAutoCancel(true);
            mBuilder.setContentIntent(contentIntent);
            mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
    }

在我的活动中,这是获取额外内容的地方。

String menuFragment = getIntent().getStringExtra("menuFragment");

            FragmentManager fragmentManager = getFragmentManager();
            Toast.makeText(MainActivity.this, menuFragment, Toast.LENGTH_SHORT).show();
            if (menuFragment != null)
            {
                if (menuFragment.equals("favoritesMenuItem"))
                {
                    fragmentManager.beginTransaction()
                            .replace(R.id.container, ContactusFragment.newInstance(customersid))
                            .commit();
                }
            }

但附加功能不起作用。

请帮帮我。

3 个答案:

答案 0 :(得分:0)

试试这个,

添加此代码,

PendingIntent contentIntent = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), notificationIntent, 0);

而不是

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0);

答案 1 :(得分:0)

在高级别,待定意图是对已存储的引用 意图。待定意图使用输入意图作为定位键 以前建立的此意图的未决意图。关键 找到这个不包括“额外”。所有其他部分 意图参与这种独特性。试试这个

PendingIntent pi = PendingIntent.getActivity(this,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

有关详细信息,请访问https://groups.google.com/forum/#!topic/android-developers/Fb5fJd_Hc-w

答案 2 :(得分:0)

替换

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, 0);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0,notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);