博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 同时发送几条通知
阅读量:5107 次
发布时间:2019-06-13

本文共 2222 字,大约阅读时间需要 7 分钟。

 android 同时发送几条通知

=======

下面是转载的文章。

 同时发送几条通知把ID添加,接收的时候找到这个id就可以出来多条了。

还是不太明白或者编码实现不了的可以加我QQ。

博客很少上了。

========

注意通知中.getActivity( context, int requestCode, intent, int flags)这几个参数:

context The Context in which this PendingIntent should start the activity.
requestCode    Private request code for the sender (currently not used).
intents Array of Intents of the activities to be launched.
flags May be , or any of the flags as supported by  to control which unspecified parts of the intent that can be supplied when the actual send happens.
google API中介绍requestCode中说明是当前未使用,一般都会赋值为0,但是当你发送多个通知,且每个通知都包含Extras时,这个就有用了。这个值可以用来标识不同通知中的Intent,主要是结合后面的flags来使用,比如,发送两个通知,id分别是1和2,当第二次发送1、2的通知时,需要更新前一次通知中的intent内容,如果不用requestCode来标识一下,则默认用最后一次发的通知覆盖前几次的通知intent。

正确是使用方法是:PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);  requestCode来标识不同通知,flags中的PendingIntent.FLAG_UPDATE_CURRENT用来使用后面通知更新前面通知,使用这个flag要注意,intent一定不能为null,否则会报空指针错误。

另外,当我们把Activity 启动模式设置为 singleTask 之后 当我们下次 再去 用Intent 启动 这个 Activity 的时候 就不会去调用 onCreate方法 也不能在onRestart()方法中取,而是去调用onNewIntent()方法 然后把Intent中的数据传给它;

<activityandroid:name="TestActivity"
android:launchMode="singleTask"/>      示例:

       @Override

  protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
int hasMsgNotifyFlag = 0;
if(intent!=null){
Bundle bundle = intent.getExtras();
if(bundle!=null){
hasMsgNotifyFlag = bundle.getInt("id");
}
Log.i( "main tab msg=>", hasMsgNotifyFlag + "");
}
}

 

/** 

   * 添加一个notification 
   */  
  public void addNotification(Context context, int id, boolean flag){  
      NotificationManager nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);  
      Notification notification = new Notification(R.drawable.icon, "hello,here", System.currentTimeMillis());  
      notification.flags = Notification.FLAG_AUTO_CANCEL; 
      Intent intent = new Intent(context, TestActivity.class);  
      Bundle bundle = new Bundle();
      bundle.putInt("id", id);
      intent.putExtras(bundle);
      PendingIntent contentIntent = PendingIntent.getActivity(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);  
      notification.setLatestEventInfo(context, "有新消息", id + "", contentIntent);  
      nm.notify(id, notification);  
  } 

转载于:https://www.cnblogs.com/wuwuwu/p/6162669.html

你可能感兴趣的文章
CODE[VS] 1262 不要把球传我
查看>>
反射---hasattr、getattr、setattr、delattr
查看>>
BZOJ 4407 于神之怒加强版
查看>>
传递对象与返回对象不是两回事
查看>>
C#注释标签的练习
查看>>
BitSet源码
查看>>
Word 2010中利用尾注添加参考文献(论文必备)
查看>>
Java 调用 Javascript 函数的范例
查看>>
With...End With 语句
查看>>
[Flex] ButtonBar系列——flex3 皮肤和外观设置
查看>>
XML外部实体注入漏洞(XXE)
查看>>
保存页面数据的场所----Hidden、ViewState、ControlState
查看>>
Python3.6全栈开发实例[015]
查看>>
eval函数使用技巧
查看>>
信息安全系统设计基础实验二—20135215黄伟业20135222胡御风
查看>>
Jupyter Notebook 的快捷键
查看>>
实现 页面某些 效果
查看>>
SharePoint Data View Conditional Formatting based on user permissions (IfHasRights)
查看>>
poj_3352 连通图的桥
查看>>
HDOJ HDU 2067 小兔的棋盘 ACM 2067 IN HDU
查看>>