0

我正在使用以下我想要在收到推送通知后运行的代码。如果我的应用程序在前台,这段代码可以正常工作。但是如果应用程序在后台,那么在点击推送通知后,Activity 不会被调用。

任何想法,可能是什么问题。请告诉我。

public void doOnMessageReceive(String message)
    {   
        try {
            JSONObject response = new JSONObject(message);
            String title = response.getString("title");
            Logger.i("title","title :::"+title);

            NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            int icon = R.drawable.ic_launcher;
            CharSequence tickerText = "New notification Pending";
            long time = System.currentTimeMillis();

            Notification notification = new Notification(icon,tickerText,time);            
            notification.flags = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_SOUND;
                //| Notification.DEFAULT_VIBRATE |Notification.FLAG_FOREGROUND_SERVICE
                //| Notification.FLAG_HIGH_PRIORITY |Notification.FLAG_ONGOING_EVENT;

            CharSequence contentTitle = "Notifications";
            CharSequence contentText = title;
            Intent notificationIntent = new Intent(this, DetailActivity.class);

            notificationIntent.putExtra(Constants.SELECTED_CATEGORY_KEY, "http://feeds.bbci.co.uk/news/rss.xml");
            notificationIntent.putExtra("guid", title);
            notificationIntent.putExtra(Constants.DISPLAY_ALL_CAT_KEY, true);
            notificationIntent.putExtra(Constants.PARSED_RSS_DATA, RSSDataSingleton.getInstance().getRssDataHM());
        notificationIntent.putExtra(Constants.MAPPED_METADATA_RSS_DATA, RSSDataSingleton.getInstance().getMappedNewsHM());
            PendingIntent contentIntent = PendingIntent.getActivity(this, 99,
                    notificationIntent, Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

            notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);
            mNotificationManager.notify(1, notification);
        } catch (JSONException e) {
            e.printStackTrace();
        }       
    }
4

0 回答 0