结构图:

MainActivity.java

package com.qf.day22_notification;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import android.widget.RemoteViews; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} // 普通的通知
public void MyClick01(View v){ //获取通知对象
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this); //必有属性 必须要写 哪怕你不用 builder.setSmallIcon(R.drawable.image1);//图标
//其他属性
//发送通知的时间 是指显示的时间不是定时发送builder.setWhen(System.currentTimeMillis());
Bitmap bp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
builder.setLargeIcon(bp);
builder.setContentInfo("信息");
builder.setContentTitle("标题");//标题
builder.setContentText("内容hgcdakhgflasfgldsafgldguli iueroewyurhwehfldiufhlaskjfglsadfglksFGLSdjgflasdgflahgjkfdshg;hg;efgh");//内容 Intent intent = new Intent(MainActivity.this, SecondActivity.class);
/**
*
* 延迟意图 等待你的点击
* 参数1:上下文
* 参数2:请求码
* 参数3:跳转的意图
* 参数4:标记
*/
PendingIntent pendIntent = PendingIntent.getActivity
(MainActivity.this, 100, intent, PendingIntent.FLAG_ONE_SHOT); builder.setContentIntent(pendIntent); //获取通知的管理者对象
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); //使用管理者让通知展示
manager.notify(1, builder.build()); } //大视图通知 小米显示miui系统好像有问题
public void MyClick02(View v){ NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
builder.setContentText("快放假了");
builder.setContentTitle("十一");
builder.setSmallIcon(R.drawable.f020); //视图样式
NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
style.addLine("还有好多天");
style.addLine("等等就到了");
style.addLine("是啊");
style.addLine("恩");
builder.setStyle(style); NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(2, builder.build()); } //大视图通知(大图片) 小米显示miui系统好像有问题
public void MyClick03(View v){
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
builder.setContentTitle("新闻");
builder.setContentText("中彩票了");
builder.setSmallIcon(R.drawable.f020); //大图片 视图样式
NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle();
//大图片
style.bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.ccc));
style.setSummaryText("菜谱");
builder.setStyle(style); NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(3, builder.build()); } //带进度条的通知
public void MyClick04(View v){ final NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());
builder.setContentTitle("昨天晚上下雨了");
builder.setContentText("早上起来 地干了");
builder.setSmallIcon(R.drawable.f020); final NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //模仿下载
new Thread(){
public void run() {
//每次下载5%
for(int i=0;i<=100;i+=5){
/**
* 设置进度
* 参数1:最大的进度
* 参数2:当前进度
* 参数3:标志 进度条的样式 false :有明确进度 true:没有明确进度
*/
builder.setProgress(100, i, false);
manager.notify(4, builder.build()); try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//下载完展示
builder.setContentText("下载完成");
manager.notify(4, builder.build());
};
}.start(); } //自定义通知
public void MyClick05(View v){
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()); builder.setContentTitle("疯狗咬人");
builder.setSmallIcon(R.drawable.ic_launcher);
//
//VIew 将xml布局转换成View对象
RemoteViews rViews = new RemoteViews(getPackageName(), R.layout.rviews_layout);
//自身的方法设置内容
rViews.setTextViewText(R.id.tv, "咬了十几个");
rViews.setImageViewResource(R.id.iv, R.drawable.f020);
builder.setContent(rViews); NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(5, builder.build()); } }

SecondActivity.java

package com.qf.day22_notification;

import android.app.Activity;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle; public class SecondActivity extends Activity{ @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.layout); //获取通知的管理者对象
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// manager.cancel(1);//根据标识 去关闭通知
manager.cancelAll();// 关闭所有通知
} }

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" > <Button
android:onClick="MyClick01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="普通的Notification"
/>
<Button
android:onClick="MyClick02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="大视图Notification"
/>
<Button
android:onClick="MyClick03"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="大视图(大图片)Notification"
/>
<Button
android:onClick="MyClick04"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="带进度条Notification"
/>
<Button
android:onClick="MyClick05"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="自定义Notification"
/> </LinearLayout>

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二个Activity"
/> </LinearLayout>

rviews_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第二个Activity"
/> </LinearLayout>
  • 对应样式图:

对应按钮顺序






* 有明确进度条样式 false



无明确进度条样式true 一直滑动



22 Notification 通知栏代码的更多相关文章

  1. Notification通知栏

    Notification通知栏 首先实现的功能就是通知栏显示Notification,Notification是显示在系统的通知栏上面的,所以Notification 是属于进程之前的通讯.进程之间的 ...

  2. phpcms v9最常用的22个调用代码

    新源网络工作室友情总结phpcms v9最常用的22个调用代码: 调用最新文章,带所在版块{pc:get sql="SELECT a.title, a.catid, b.catid, b.c ...

  3. android自定义Notification通知栏实例

    项目有个需求,需要在发送Notification的时候动态给定url的图片.大概思路如下:自己定义一个Notification的布局文件,这样能够很方便设置View的属性. 首先加载网络图片,使用Bi ...

  4. Notification通知栏的使用

    一.基础的知识了解 1.pendingIntent : 它是Intent的封装,可以跳转某个Activity.给Service发送一个命令.还可以发送一个广播 2.进度条的使用方法 3.更新通知栏的信 ...

  5. Android学习(二十)Notification通知栏

    一.通知栏的内容 1.图标 2.标题 3.内容 4.时间 5.点击后的相应 二.如何实现通知栏 1.获取NotificationManager. 2.显示通知栏:notify(id,notificat ...

  6. android学习笔记22——Notification

    Notification ==> Notification是显示在手机状态栏的消息,位于手机屏幕的最上方: 一般显示手机当前网络.电池状态.时间等: Notification所代表的是一种全局效 ...

  7. 安卓开发笔记——Notification通知栏

    当用户有没有接到的电话的时候,Android顶部状态栏里就会出现一个小图标.提示用户有没有处理的快讯,当拖动状态栏时,可以查看这些快讯.Android给我们提供了NotificationManager ...

  8. Android Notification通知栏的使用,通知栏在Android8.0系统不显示的问题;

    1.正常使用通知栏: /** * 创建通知栏管理工具 */ NotificationManager notificationManager = (NotificationManager) getSys ...

  9. Notification通知代码简洁使用

    1.自定义发送 Notification 的使用 1.1 通知(消息)的创建 ---------------详细介绍篇 // 不带消息内容 NSNotification *notification1 ...

随机推荐

  1. vim 去除代码行号并正常缩进代码

    先命令模式下输入 :%s/[ \t]*\d\{1,4\}/ 即使用正则表达式替换   后命令模式下输入 gg 调到行首 v 进入可视化 G 调到行尾 = 所有代码正常缩进  

  2. mysql \N 的疑惑

    \N 在mysql查询为NULL 好像是可以代替成一个字符串,并与后面的单词隔绝,我的理解为下图这样 还是不懂为啥会这样.

  3. TOMCAT下的JNDI的配置

    一.第一种配置局部JNDI 1.在tomcat的conf目录下的server.xml的<host>标签内,添加: <Context path="/TestMvcMode&q ...

  4. [Vijos 2024]无向图最短路径

    Description 无向图最短路径问题,是图论中最经典也是最基础的问题之一.本题我们考虑一个有 $n$ 个结点的无向图 $G$.$G$ 是简单完全图,也就是说 $G$ 中没有自环,也没有重边,但任 ...

  5. [HNOI2008]玩具装箱TOY

    题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具, ...

  6. [BZOJ]2589: Spoj 10707 Count on a tree II

    Time Limit: 20 Sec  Memory Limit: 400 MB Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v),你需要回答u xor last ...

  7. 【LSGDOJ1834 Tree】树链剖分

    题目描述 给定一个N个结点的无向树,树中的结点按照1...N编号,树中的边按照1...N − 1编号,每条边都赋予一个权值.你需要编写程序支持以下三种操作: 1.    CHANGE i v:将i号边 ...

  8. bzoj 4025: 二分图

    Description 神犇有一个n个节点的图.因为神犇是神犇,所以在T时间内一些边会出现后消失.神犇要求出每一时间段内这个图是否是二分图.这么简单的问题神犇当然会做了,于是他想考考你. 解题报告: ...

  9. 使用python+requests+unittest实现接口自动化测试

    这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下. 一.整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用. Common:公共方法:主要放 ...

  10. 如何让Mac、Windows可以互相远程

    您可以通过Mac来远程Windows桌面:也可通过Windows来远程Mac界面:甚至还可以通过iOS或Android来远程Mac或Windows. Windows的操作方法,以Windows XP ...