Android开发系列(二十四):Notification的功能与使用方法
关于消息的提示有两种:一种是Toast,一种就是Notification。前者维持的时间比較短暂。后者维持的时间比較长。
并且我们寻常手机的应用比方网易、贴吧等等都有非常多的推送消息,就是用Notification实现的。
Notification是显示在手机状态栏的通知—手机状态栏位于手机屏幕的上方。程序一般通过NotificationManager服务来发送Notification通知
Notification的一些方法,接下来我们都可以用到:
setDefaults():设置通知LED等、音乐、震动等等。
setAutoCancel():设置点击通知后。状态栏自己主动删除通知。
setContentTitle():设置通知的标题
setContentText():设置通知的内容
setTicker():设置通知的提示信息
setSmallIcon():为通知设置图标(注意这种方法第三个是i的大写,不是L的小写)
发送Notification的步骤:
1、调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的Notification Manager服务
2、通过构造器创建一个Notification对象。
3、为Notification设置各种属性。
4、通过NotificationManager发送Notification。
在这里,我们要注意一点要在AndroidManifest.xml文件里加入几个权限:
<!-- 加入操作闪光灯的权限 -->
<uses-permission android:name="android.permission.FLASHLIGHT" />
<!-- 加入操作振动器的权限 -->
<uses-permission android:name="android.permission.VIBRATE" />
接下来,我们通过详细的代码来说明。
main.xml:
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送Notification"
android:onClick="send"
/> </LinearLayout>
</span>
这里设置了一个button,点击会发送通知
然后,我们看下NotificationTest.java的代码:
<span style="font-size:14px;">package cn.notificationtest.com; import cn.notificationtest.com.R; import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View; public class NotificationTest extends Activity
{
static final int NOTIFICATION_ID = 0x123;
NotificationManager nm; @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 获取系统的NotificationManager服务
nm = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
} // 为发送通知的button的点击事件定义事件处理方法
public void send(View source)
{
// 创建一个启动其它Activity的Intent
Intent intent = new Intent(NotificationTest.this
, OtherActivity.class);
PendingIntent pi = PendingIntent.getActivity(
NotificationTest.this, 0, intent, 0);
Notification notify = new Notification.Builder(this)
// 设置打开该通知。该通知自己主动消失
.setAutoCancel(true)
// 设置显示在状态栏的通知提示信息
.setTicker("网易新闻")
// 设置通知的图标
.setSmallIcon(R.drawable.notify)
// 设置通知内容的标题
.setContentTitle("这是新闻标题")
// 设置通知内容
.setContentText("这是新闻的内容:*************")
// // 设置使用系统默认的声音、默认LED灯
// .setDefaults(Notification.DEFAULT_SOUND
// |Notification.DEFAULT_LIGHTS)
// 设置通知的自己定义声音
.setSound(Uri.parse("android.resource://cn.notificationtest.com/"+R.raw.msg))
.setWhen(System.currentTimeMillis())
// 设改通知将要启动程序的Intent
.setContentIntent(pi).getNotification();
// 发送通知
nm.notify(NOTIFICATION_ID, notify);
}
}</span>
在这个java文件里,我们通过构造器创建了一个Notification对象。然后为Notification设置各种属性。最后通过NotificationManager发送Notification。
(这里须要注意的一点是,我们定义的声音,图标什么的都是个人创建)
通过上边的java代码,我们创建了一个Intent对象,能够通过这条通知,切换到另外的一个Activity界面:OtherActivity
<span style="font-size:14px;">/**
*
*/
package cn.notificationtest.com; import cn.notificationtest.com.R; import android.app.Activity;
import android.os.Bundle; public class OtherActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//设置该Activity显示的页面
setContentView(R.layout.other);
}
}
</span>
效果图例如以下所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgwMDUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Android开发系列(二十四):Notification的功能与使用方法的更多相关文章
- Android开发(二十四)——数据存储SharePreference、SQLite、File、ContentProvider
Android提供以下四种存储方式: SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程 ...
- BizTalk开发系列(二十四) BizTalk项目框架建议
Asp.NET有MVC框架,大部份的开发都是按照MVC进行的.BizTalk是面向消息的开发,不能完全采用分层的开发模式.而微软只提供了 BizTalk项目开发的基本策略,通过分析相关的Complex ...
- Android开发(二十八)——基础功能函数
/** * 判断事件是否在控件中 * * @param view * @param ev * @return * @see http://m.blog.csdn.net/blog/aygxylxk/8 ...
- Chrome浏览器扩展开发系列之十四
Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59 阅读:1361 评论:0 收藏:0 ...
- Chrome浏览器扩展开发系列之十四:本地消息机制Native messagin
Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 2016-11-24 09:36 114人阅读 评论(0) 收藏 举报 分类: PPAPI(27) 通过将浏览器 ...
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- BizTalk开发系列(二十二) 开发自定义Map Functoid
尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...
- Android开发(二十五)——Android上传文件至七牛
设置头像: Drawable drawable = new BitmapDrawable(dBitmap); //Drawable drawable = Drawable.createFromPath ...
- Android开发系列(十八):自己定义控件样式在drawable目录下的XML实现
在Android开发的过程中,我们常常须要对控件的样式做一下改变,能够通过用添加背景图片的方式进行改变,可是背景图片放多了肯定会使得APK文件变的非常大. 我们能够用自己定义属性shape来实现. s ...
- Java开发学习(二十四)----SpringMVC设置请求映射路径
一.环境准备 创建一个Web的Maven项目 参考Java开发学习(二十三)----SpringMVC入门案例.工作流程解析及设置bean加载控制中环境准备 pom.xml添加Spring依赖 < ...
随机推荐
- (求助)对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知
对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知,有谁碰到过这样的问题?????? 测试了以下三款手机,结果如下: 1.android 4.4.2: 不受影响 2 ...
- ubuntu16.04安装teamviewer12
安装teamviewer下载地址:http://www.teamviewer.com/en/download/linux/ 下载的是:teamviewer_12.0.76279_i386.deb ...
- 计算型属性 vs 懒加载
只实现 getter 方法的属性被称为计算型属性,等同于 OC 中的 ReadOnly 属性 计算型属性本身不占用内存空间 不可以给计算型属性设置数值 计算型属性可以使用以下代码简写 var titl ...
- 网络编程基础_3.APC队列
APC队列 #include <stdio.h> #include <windows.h> // 保存 IO 操作的结果 CHAR Buffer1[] = { }; CHAR ...
- jmeter 常见问题一(url重定向)
刚接触JMeter,想把学习过程中遇到的一些问题,记录下来因为是新接触,所以很多东西都在摸索中! 使用Badboy录制了公司一个项目的登录功能导入到JMeter后,执行场景,发现登录校验成功,但后续的 ...
- 通过acdbblockreference 获得块名
AcDbBlockReference *pBlkRef = AcDbBlockReference::cast(ent.object()); AcDbObjectId pBlkTblRecId; ...
- vue基础---实例
(1)数据和方法 ①响应式双向绑定 当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性.当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为 ...
- Microsoft SQL Server 存储过程
Microsoft SQL Server 存储过程 TRIGGER DDL触发器:主要用于防止对数据库架构.视图.表.存储过程等进行的某些修改:DDL事件是指对数据库CREATE,ALTER,DROP ...
- HTML5 实现Link跳线效果
之前我们推出过Flex版本的Link跳线效果,现在基于HTML5新版本的跳线效果也实现了,细微之处我们进行了改进,如link倾斜的时候Offset方向始终保持垂直等.先看效果.实现的算法和Flex基本 ...
- 洛谷——P1972 [SDOI2009]HH的项链(线段树)
P1972 [SDOI2009]HH的项链 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的 ...