Android推送消息问题,始终在显示屏上显示旧消息

时间:2014-05-17 08:15:04

标签: android push google-cloud-messaging

请帮帮我。我坚持使用GCM推送消息。 一切都很完美,但当我试图在下一个屏幕上显示我的消息时,我总是老了一个或第一个。 但如果我检查我的日志猫,我总是从服务器收到新消息。那么问题出在哪里我没有得到。我在stackoverflow上尝试了很多代码。这是我的代码片段 -

// this is the my service class
public class GCMIntentService extends GCMBaseIntentService {
    public GCMIntentService() {
        super(SENDER_ID);
    }

// this is the onMessage revive method 
    @Override
    protected void onMessage(Context context, Intent intent) {
        Log.i(TAG, "new message= ");
        String message = intent.getExtras().getString("message");
        generateNotification(context, message);
        System.out.println(message+"++++++++++1");
    }

// this is the notification method

private void generateNotification(Context context, String message) {
        System.out.println(message+"++++++++++2");
        int icon = R.drawable.ic_launcher;
        long when = System.currentTimeMillis();
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(icon, message, when);
        String title = context.getString(R.string.app_name);
        String subTitle = "Important News for you!";
        Intent notificationIntent = new Intent(context, NotificationView.class);
        notificationIntent.putExtra("content", message);

        //PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        //PendingIntent intent = PendingIntent.getActivity(context, 0,notificationIntent, 0);

        PendingIntent intent =  PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_SINGLE_TOP);

        notification.setLatestEventInfo(context, title, subTitle, intent);
        //To play the default sound with your notification:
        notification.defaults |= Notification.DEFAULT_SOUND;
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.defaults |= Notification.DEFAULT_VIBRATE;
        notificationManager.notify(0, notification);
    }

public class NotificationView extends Activity {
    // and this is the my next activity where i am displaying push message-
    Intent intent=getIntent();
                    stringValue=intent.getStringExtra("content");

                    System.out.println(stringValue);

我已经尝试过了 -

PendingIntent intent = PendingIntent.getActivity(context,0,notificationIntent,0);

和 - PendingIntent intent = PendingIntent.getActivity(context,0,notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);

两者都不适合我。

1 个答案:

答案 0 :(得分:0)

代码没问题,尝试使用字符串缓冲区可能因为字符串数据无法更改,除非每次在新的时候指定new给我投票:)