Android Notification 手机系统横幅弹出提示框调用
2017-03-09 16:24
239 查看
类似于仿微信信息提示提出框。
在项目当中集成了推送功能,当手机接收到消息后只是在手机通知栏有提示信息。所以需要展示像微信信息弹出框一样的效果,开始自己还以为微信信息弹出框是自定义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;所以只有自己设置一个定时任务,弹出两秒后让其消失。
在项目当中集成了推送功能,当手机接收到消息后只是在手机通知栏有提示信息。所以需要展示像微信信息弹出框一样的效果,开始自己还以为微信信息弹出框是自定义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;所以只有自己设置一个定时任务,弹出两秒后让其消失。
相关文章推荐
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- 手机调用系统的拍照和裁剪功能,如果界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- C#调用系统Dll,弹出提示对话框
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- 调用系统提示音教程
- 黄聪:DEDECMS联动调用时提示“你设定了字段为联动类型,但系统中没找到与你定义的字段名相同的联动组名!”
- 调用系统提示音教程
- window.close关闭窗口,不弹出系统提示,直接关闭
- Flex/Air在手机中弹出提示框
- 将Capicom调用代码封装到ActiveX——解决javascript调Capicom读取数字证书信息时,IE弹出安全提示的问题
- 弹出信息提示窗口的代码;在Windows系统桌面右下角弹出友情提示窗口
- Android调用系统选择联系人,适合更多种手机,Google官方推荐
- 调用系统提示音教程出处:Webcool
- 关闭或重启Windows Server 操作系统时,系统会弹出一个提示窗口
- 调用系统提示音教程
- JS对于系统的安全机制弹出个性化提示
- window.close关闭窗口,不弹出系统提示,直接关闭
- js不弹出系统提示关闭窗口
- 系统提示一个程序正在被另一个程序调用,如何知道是被哪个程序调用