android通知栏的消息内容,怎么得到和保存消息。

解决方案 »

  1.   

    //首先得创建一个通知栏,并把数据放进去
    NotificationManager nm = (NotificationManager) context
    .getSystemService(Context.NOTIFICATION_SERVICE);
    PendingIntent pendingIntent = null;
    if (!TextUtils.isEmpty(message.getJump())) {//这里的message是个实体类,就是一些属性
    Intent intent = new Intent(context, MessageActivity.class);//点击通知栏跳转到指定界面
    if (message.getParameter() != null) {
    Bundle bundle2 = new Bundle();
    bundle2.putString("title", message.getTitle());
    bundle2.putString("content", message.getContent());
    intent.putExtras(bundle2);//数据放入到intent
    }
    pendingIntent = PendingIntent.getActivity(context, 0,
    intent, PendingIntent.FLAG_ONE_SHOT);//再将intent放入pendingIntent
    }
    Notification baseNF = new Notification.Builder(context)
    .setAutoCancel(true)
    .setContentTitle(message.getTitle())
    .setContentText(message.getContent())
    .setTicker(message.getTitle())
    .setDefaults(Notification.DEFAULT_SOUND| Notification.DEFAULT_VIBRATE)
    .setContentIntent(pendingIntent)//这里将pendingIntent放入
    .setSmallIcon(R.drawable.bar_icon)
    .setWhen(System.currentTimeMillis()).build();
     nm.notify(0, baseNF);//最后发出通知栏baseNF
    //在MessageActivity中
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


    Intent intent = getIntent();
    if(intent!=null){
    Bundle bundle2 = intent.getExtras();
    if(bundle2!=null){
    // 获取该Intent所携带的数据
    String title =  bundle2.getString("title");
    String content =  bundle2.getString("content");
    }
    }

    }

    //如果你的MessageActivity是单例模式,还需要重写
    @Override
    protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if(intent!=null){
    Bundle bundle2 = intent.getExtras();
    if(bundle2!=null){
    // 获取该Intent所携带的数据
    String title =  bundle2.getString("title");
    String content =  bundle2.getString("content");
    }
    }
    }