Android通知 ---- Notification
2016-09-23 21:02
253 查看
通知【Notification】
位于标题栏之下,通常用于提醒用户,内容为一些应用程序的推送消息和电池信息等。
通常是使用NotificationManager来管理通知的。
使用Notification.Builder来构建通知的对象。
setDefaults(int defaults) 设置通知的led灯或者振动信息
setContentTitle(CharSequence title):设置通知的标题
setContentText(CharSequence text):设置通知的内容
setAutoCancel(boolean autoCancel):设置点击通知栏之后,是否自动删除通知信息
setSmallIcon(int icon):为通知栏设置小图标。
setLargeIcon(Bitmap icon):为通知栏设置大图标
setTicker(CharSequence tickerText):设置通知栏的提示文本
setContentIntent(PendingIntent intent):设置点击通知后将启动的程序组件
发送通知的步骤:
1.通过调用context的getSystemService方法获取系统的通知服务管理器NotificationManager
2.通过构造器创建一个NotificationCompat.Builder对象。
3.调用builder的相关方法,设置通知属性。
4.通过调用builder的build方法,设置通知的对象。
5.通过通知管理器的notify对象,发送通知。
实例:
public class MainActivity extends Activity {
private NotificationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1、初始化通知管理器的系统服务
manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
}
public void notify01(View view){
//2.构建通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
//3.设置内容
//设置小图标(必须要指定的,如果大图标没有被指定,那么小图标就显示在大图标的位置上)
builder.setSmallIcon(R.drawable.d_baibai);
//设置大图标
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.d_bizui);
builder.setLargeIcon(bm);
//设置标题
builder.setContentTitle("提示信息");
//设置内容
builder.setContentText("恭喜你,被《奔跑吧,兄弟》选中,获得了笔记本电脑一台,手机一部,现金8888元,快来领奖吧!!");
//设置提示用户的信息
builder.setTicker("你有一条新消息!!!");
//设置时间
builder.setWhen(System.currentTimeMillis());
//设置优先级
builder.setPriority(Notification.PRIORITY_HIGH);
//设置跳转界面
PendingIntent pi = PendingIntent.getActivity(this, 100, new Intent(this, SecondActivity.class), PendingIntent.FLAG_ONE_SHOT);
builder.setContentIntent(pi);
//设置一值显示,点击之后才消失
builder.setAutoCancel(true);
//获取通知对象
Notification notification = builder.build();
//发送通知
manager.notify(1, notification);
}
//进度条通知
public void notify02(View view){
new Thread(){
public void run() {
//1.获取builder对象
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this);
//2.设置小图标
builder.setSmallIcon(R.drawable.d_beishang);
builder.setTicker("正在下载中....");
builder.setContentTitle("下载文件");
builder.setContentText("正在下载中....");
for (int i = 0; i <=100; i+=10) {
//设置通知的进度条
builder.setProgress(100, i, false);
//发送通知
manager.notify(2, builder.build());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//取消下载的通知
manager.cancel(2);
builder = new NotificationCompat.Builder(MainActivity.this);
builder.setSmallIcon(R.drawable.d_doge);
builder.setContentTitle("下载完成");
builder.setContentText("下载完成,点击进入安装界面");
builder.setTicker("下载完成....");
builder.setPriority(Notification.PRIORITY_HIGH);
//发送完成通知
manager.notify(3, builder.build());
}
}.start();
}
//列表通知(新闻类app经常使用的通知)
public void notify03(View view){
//1.获得builder对象
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.d_dahaqi).setContentTitle("今日头条");
NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
style.addLine("三星手机note7出现大规模爆炸事件,三星公司除中国外全面召回")
.addLine("30省份启动户籍改革 你们那里落户门槛有多高?")
.addLine("大陆对台战略改变:“区别对待”、“一岛两制”")
.addLine("马蓉宣布开通网络直播 网友:你怎么不去死!")
.setSummaryText("以上为今天推送精彩内容");
//设置通知样式为列表样式
builder.setStyle(style);
//发送通知
manager.notify(4, builder.build());
}
//大图通知(通常用于提供壁纸类的app)
public void notify04(View view){
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.d_chanzui).setContentTitle("今日消息").setContentText("大量精美图片来袭!!");
//实例化大图样式的对象
NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
style.bigPicture(bm);
style.setSummaryText("可爱的阿狸");
//设置通知的样式
builder.setStyle(style);
//发送通知
manager.notify(5, builder.build());
}
//自定义通知(想要自定义通知格式时,使用这个)
public void notify05(View view){
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher).setContentTitle("自定义通知").setContentText("丰富的表情包");
//把布局文件转化为远程视图对象
RemoteViews views = new RemoteViews(getPackageName(), R.layout.notification);
//设置远程视图当中对应的控件的内容
views.setImageViewResource(R.id.imageView1, R.drawable.ali);
views.setTextViewText(R.id.textView1, "emoji的表情");
builder.setContent(views);
//发送通知
manager.notify(6, builder.build());
}
}
位于标题栏之下,通常用于提醒用户,内容为一些应用程序的推送消息和电池信息等。
通常是使用NotificationManager来管理通知的。
使用Notification.Builder来构建通知的对象。
setDefaults(int defaults) 设置通知的led灯或者振动信息
setContentTitle(CharSequence title):设置通知的标题
setContentText(CharSequence text):设置通知的内容
setAutoCancel(boolean autoCancel):设置点击通知栏之后,是否自动删除通知信息
setSmallIcon(int icon):为通知栏设置小图标。
setLargeIcon(Bitmap icon):为通知栏设置大图标
setTicker(CharSequence tickerText):设置通知栏的提示文本
setContentIntent(PendingIntent intent):设置点击通知后将启动的程序组件
发送通知的步骤:
1.通过调用context的getSystemService方法获取系统的通知服务管理器NotificationManager
2.通过构造器创建一个NotificationCompat.Builder对象。
3.调用builder的相关方法,设置通知属性。
4.通过调用builder的build方法,设置通知的对象。
5.通过通知管理器的notify对象,发送通知。
实例:
public class MainActivity extends Activity {
private NotificationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//1、初始化通知管理器的系统服务
manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
}
public void notify01(View view){
//2.构建通知
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
//3.设置内容
//设置小图标(必须要指定的,如果大图标没有被指定,那么小图标就显示在大图标的位置上)
builder.setSmallIcon(R.drawable.d_baibai);
//设置大图标
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.d_bizui);
builder.setLargeIcon(bm);
//设置标题
builder.setContentTitle("提示信息");
//设置内容
builder.setContentText("恭喜你,被《奔跑吧,兄弟》选中,获得了笔记本电脑一台,手机一部,现金8888元,快来领奖吧!!");
//设置提示用户的信息
builder.setTicker("你有一条新消息!!!");
//设置时间
builder.setWhen(System.currentTimeMillis());
//设置优先级
builder.setPriority(Notification.PRIORITY_HIGH);
//设置跳转界面
PendingIntent pi = PendingIntent.getActivity(this, 100, new Intent(this, SecondActivity.class), PendingIntent.FLAG_ONE_SHOT);
builder.setContentIntent(pi);
//设置一值显示,点击之后才消失
builder.setAutoCancel(true);
//获取通知对象
Notification notification = builder.build();
//发送通知
manager.notify(1, notification);
}
//进度条通知
public void notify02(View view){
new Thread(){
public void run() {
//1.获取builder对象
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this);
//2.设置小图标
builder.setSmallIcon(R.drawable.d_beishang);
builder.setTicker("正在下载中....");
builder.setContentTitle("下载文件");
builder.setContentText("正在下载中....");
for (int i = 0; i <=100; i+=10) {
//设置通知的进度条
builder.setProgress(100, i, false);
//发送通知
manager.notify(2, builder.build());
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//取消下载的通知
manager.cancel(2);
builder = new NotificationCompat.Builder(MainActivity.this);
builder.setSmallIcon(R.drawable.d_doge);
builder.setContentTitle("下载完成");
builder.setContentText("下载完成,点击进入安装界面");
builder.setTicker("下载完成....");
builder.setPriority(Notification.PRIORITY_HIGH);
//发送完成通知
manager.notify(3, builder.build());
}
}.start();
}
//列表通知(新闻类app经常使用的通知)
public void notify03(View view){
//1.获得builder对象
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.d_dahaqi).setContentTitle("今日头条");
NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
style.addLine("三星手机note7出现大规模爆炸事件,三星公司除中国外全面召回")
.addLine("30省份启动户籍改革 你们那里落户门槛有多高?")
.addLine("大陆对台战略改变:“区别对待”、“一岛两制”")
.addLine("马蓉宣布开通网络直播 网友:你怎么不去死!")
.setSummaryText("以上为今天推送精彩内容");
//设置通知样式为列表样式
builder.setStyle(style);
//发送通知
manager.notify(4, builder.build());
}
//大图通知(通常用于提供壁纸类的app)
public void notify04(View view){
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.d_chanzui).setContentTitle("今日消息").setContentText("大量精美图片来袭!!");
//实例化大图样式的对象
NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
style.bigPicture(bm);
style.setSummaryText("可爱的阿狸");
//设置通知的样式
builder.setStyle(style);
//发送通知
manager.notify(5, builder.build());
}
//自定义通知(想要自定义通知格式时,使用这个)
public void notify05(View view){
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher).setContentTitle("自定义通知").setContentText("丰富的表情包");
//把布局文件转化为远程视图对象
RemoteViews views = new RemoteViews(getPackageName(), R.layout.notification);
//设置远程视图当中对应的控件的内容
views.setImageViewResource(R.id.imageView1, R.drawable.ali);
views.setTextViewText(R.id.textView1, "emoji的表情");
builder.setContent(views);
//发送通知
manager.notify(6, builder.build());
}
}
相关文章推荐
- 系出名门Android(3) - 对话框(Dialog)和通知(Notification)
- Android的状态栏通知(Notification)
- Android中的消息通知(NotificationManager和Notification)
- Android开发——通知Notification
- Android应用开发基础篇(2)-----Notification(状态栏通知)
- 系出名门Android(3) - 对话框(Dialog)和通知(Notification)
- Android消息通知(notification)和PendingIntent传值
- Android添加顶部通知(Notification)并处于“正在进行中”(onGoing)
- 利用android的"通知Notification"来实现msn的登录状态
- (转)【Android】状态栏通知Notification、NotificationManager详解
- Android NotificationManager与Notification(通知栏) 的使用
- 【Android】状态栏通知Notification、NotificationManager详解
- 从J2EE转向Android的第十天-----对话框(Dialog)和通知(Notification)
- Android 消息通知-Notification
- 定制android通知(Notification)
- 定制android通知(Notification)
- 系出名门Android(3) - 对话框(Dialog)和通知(Notification)
- android开发(11) 消息栏通知(Notification)
- Android 之 Notification通知栏
- 【Android】状态栏通知Notification、NotificationManager详解