类似于仿微信信息提示提出框。

在项目当中集成了推送功能,当手机接收到消息后只是在手机通知栏有提示信息。所以需要展示像微信信息弹出框一样的效果,开始自己还以为微信信息弹出框是自定义Dialog之类的自定义控件;后面发现其实微信也是调用 Android Notification 系统自带的通知栏,在其中可以定义各种各样的通知栏样式。

具体详情也可以参看:

https://developer.android.com/guide/topics/ui/notifiers/notifications.html#lockscreenNotification

https://shoewann0402.github.io/2016/05/12/Android-Notification-%E9%80%9A%E7%9F%A5%E6%A0%B7%E5%BC%8F%E6%80%BB%E7%BB%93/

这里只是列出仿微信信息通知的横幅通知栏:

notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {

Toast.makeText(context, "此类通知在Android 5.0以上版本才会有横幅有效!", Toast.LENGTH_SHORT).show();

}

//为了版本兼容  选择V7包下的NotificationCompat进行构造

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);

builder.setContentTitle("横幅通知");

builder.setContentText("请在设置通知管理中开启消息横幅提醒权限");

builder.setDefaults(NotificationCompat.DEFAULT_ALL);

builder.setSmallIcon(R.drawable.app_icon);

builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher));

Intent intent = new Intent(context, TestActivity.class);

PendingIntent pIntent = PendingIntent.getActivity(context, 1, intent, 0);

builder.setContentIntent(pIntent);

builder.setFullScreenIntent(pIntent, true);

builder.setAutoCancel(true);

Notification notification = builder.build();

notificationManager.notify(1, notification);//注意这里 1 为当前通知栏的 Id 号,和 Fragment 设置 Id 是一样的

// 设置 heads-up 消失任务

TimerTask task = new TimerTask() {

@Override

public void run() {

System.out.println("start the cancel task....");

notificationManager.cancel(1);

// 根据之前设置的通知栏 Id 号,让相关通知栏消失掉

}

};

Timer timer = new Timer();

timer.schedule( task , 2000);

}

由于等待通知栏自己消失的时间过于长,找了半天也没有找到合适的API;所以只有自己设置一个定时任务,弹出两秒后让其消失。

android系统通知栏的弹框流程,Android Notification 手机系统横幅弹出提示框调用相关推荐

  1. 荣耀3手机android 5.0吗,荣耀畅玩5X的手机系统是什么?能升级安卓5.0吗?

    荣耀畅玩5X的手机系统是什么 荣耀畅玩5X的手机系统是EMUI 3.1系统(兼容Android 5.1). 系统方面,此次荣耀畅玩5X便运行行基于Android 5.1深度优化的EMUI 3.1系统, ...

  2. C#web弹出提示框的几种方法

    在C#制作网站中我用到的弹出提示框的方法如下: 构造一个函数msgbox,然后调用. #region 实现MsgBox功能     ///     /// 显示"确定"点击以后就转 ...

  3. IOS弹出提示框(确认/取消)

    在移动开发之中,系统弹出提示框是很常见的需求,比如,账户密码输入不正确的时候,给予客户提示"输入不正确,请再次输入!": 此文章不做详细的描述,因为这个东西的话,也很简单,如果要以 ...

  4. 弹出提示框 自动消失

    我们在进行增.删.改.查的时候,很多时候都需要一个提示信息以表明所做操作的成功等状况.有些人喜欢用alert()来提示,这不太人性化,因为alert()弹出来的提示框必须点确定才能继续进行其它操作.我 ...

  5. ajax弹出提示框,Ajax环境下弹出提示框

    在普通的ASP.NET环境中,我们要想在WEB窗体上弹出一个对话框,经常用到的是如下代码: Response.Write(""); 然而在Ajax的环境中却不能使用上述的代码,否则 ...

  6. Unity3D中角色撞击物体弹出提示框或显示对象效果

    角色撞击物体弹出提示框或显示对象效果 刚开始使用的是调用SetActive方法 例: 在Start()函数中设置对象的SetActive属性为false,在函数 void start() {gameo ...

  7. php右小角弹出框,js右下角弹出提示框示例代码

    本文实例讲解了网页右下角弹出广告信息框实例代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 网页右下角的信息框 #winpop { width:200px; height:0px; po ...

  8. php 右下脚弹窗,JavaScript实现右下角弹出提示框的方法

    在我们日常开发工作中,我们会经常遇到需要在页面的右下角弹出提示框或者广告的小功能,这样是为了更好的让用户体验,那么如何实现网页右下角弹出提示框呢?今天我们就带大家介绍下JavaScript实现右下角弹 ...

  9. JS的三种弹出提示框(alert、confirm、prompt)

    三种弹出提示框 1.alert() 2.confirm() 3.prompt() 1.alert() 方法会弹出一个警告框,只有确定按钮 alert('这是个警告框') 2.comfim() 会弹出一 ...

  10. 非常优美的弹出提示框SweetAlert

    SweetAlert的简单使用 SweetAlert可以替代JavaScript原生的alert和confirm等函数呈现的弹出提示框,它将提示框进行了美化,并且允许自定义,支持设置提示框标题.提示类 ...

最新文章

  1. 链表问题13——删除无序单链表中值重复出现的节点
  2. mysql三表查询数据重复_解决mybatis三表连接查询数据重复的问题
  3. keras cnn注意力机制_TensorFlow、PyTorch、Keras:NLP框架哪家强
  4. iOS 15 只是一个更好看的 Linux 吗?
  5. windows下Python+Editplus windows Python开发环境
  6. gephi 使用mysql数据,gephi练习数据
  7. android 数据库详解,Android-SQLite数据库操作详解
  8. 因开源协议“大打出手”,AWS 宣布创建 Elasticsearch、Kibana 分支
  9. python不会英语不会数学怎么自学-零基础想自学PYTHON如果补数学怎么补?
  10. 我的随身电脑-千脑(转载)
  11. 安卓逆向015之JEB静态分析与动态调试(注册机)
  12. Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。
  13. 尝试用visio画个等边三角形
  14. 【毕业设计】 stm32智能运动计步系统 - 物联网 嵌入式 单片机
  15. 计算机c语言运算符号取整,c语言取整(c语言四舍五入取整)
  16. 怎么录制视频声音,什么录音软件好用
  17. 【谷粒商城】ElasticSearch、上架与检索
  18. 云服务器oa系统,oa系统放到云服务器云服务器
  19. MASC: Multi-scale Affinity with Sparse Convolution for 3D Instance Segmentation
  20. 【清华集训2014】【BZOJ3811】玛里苟斯

热门文章

  1. cherry-pick(命令行和idea方式),git部分常用命令及一些注意事项
  2. 电影数字服务器里播放文件字母意思,[转载]数字电影命名规则
  3. 硬件即服务,云栖大会上一块开发板可让所有设备“万物互联”
  4. 28. 学历与学识的区别
  5. 前端学习---使用原生AJAX从本地txt文件中获取数据
  6. 前端开发:H5直播起航
  7. Java判断字符串只含有四位数字
  8. linux内核协议栈 邻居协议之 arp 数据包收发处理流程
  9. 金融时间序列模型整理
  10. turtle安装以及python3安装报错解决方案,用python画小猪佩奇