zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android 同时发送几条通知

Android 发送 同时 通知 几条
2023-09-27 14:29:20 时间
 同时发送几条通知把ID添加,接收的时候找到这个id就可以出来多条了。 还是不太明白或者编码实现不了的可以加我QQ。
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"

       @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);  
  } 





下沉式通知的一种实现 | Android悬浮窗Window应用 当你浏览公众号时来了一条新消息,通知在屏幕顶部会以自顶向下动画的形式入场,而且它是跨界面的全局浮窗(效果如下图)。虽然上一篇中抽象的浮窗工具类已经能实现这个需求。但本文在此基础上再封装一些更加友好的
Android如何给通知channel静音 目前各个市场都要求targetsdkversion要不低于26,也就是android 8.0。 相应的影响很多功能,比如通知。 当targetsdkversion = 26,需要为通知添加channel
奥特曼超人 KARL-Dujinyang-奥特曼超人。作者目前任职于银狐、泡椒游戏公司,曾任职腾为CTO,CSDN技术专家,曾创办过创业go、造梦工厂、米奇云,万能孵化器等,领域涉及逆向安全专家以及全栈工程师,作者目前出书中。