首页 文章

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

提问于
浏览
0

请帮帮我 . 我坚持使用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

    代码很好,尝试使用字符串缓冲区可能因为字符串数据不能更改,除非每次新的指定我在这里给我投票:)

相关问题