分类:C#、Android、VS2015;

创建日期:2016-02-29

一、简介

上一节介绍了通知(Notification)相关的基本内容。这一节先用一个简单示例演示创建和发布本地通知的基本用法,下一节再演示更多的用法。

二、示例2运行截图

在穿ch1502MainActivity屏幕上(左侧图)单击【发布通知】按钮后,屏幕左上角就会显示一个通知图标,下拉该图标,就会显示通知区域(中间的图)。单击通知区域中上面的那个示例通知,就会显示ch1502SecondActivity屏幕(未截图),并在此屏幕上显示在ch1502MainActivity屏幕中单击按钮的次数。

 

三、主要设计步骤

1、添加通知用的图标

在drawable文件夹下添加一个ch1502statButton.png图片,作为通知的图标。或者自己做一个图标。

2、添加ch1502_Main.axml

在layout文件夹下添加该文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/ch1502_btn1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="发布通知" />
</LinearLayout>

3、添加ch1502_Second.axml文件

在layout文件夹下添加该文件。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px">
<TextView
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/ch1502_textView1" />
</LinearLayout>

4、添加ch1502SecondActivity.cs文件

在SrcDemos文件夹下添加该文件。

using Android.App;
using Android.Content;
using Android.OS;
using Android.Widget; namespace MyDemos.SrcDemos
{
[Activity(Label = "【例15-2】Notification基本用法")]
public class ch1502SecondActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState); // 获取MainActivity中传递的count值,如果不存在count则返回-1
int count = Intent.Extras.GetInt("count", -1); // 如果没有传递count,直接返回
if (count <= 0)
{
return;
} SetContentView(Resource.Layout.ch1502_Second);
TextView txtView = FindViewById<TextView>(Resource.Id.textView1);
txtView.Text = string.Format("你单击了 {0} 次按钮。", count);
}
}
}

5、添加ch1502MainActivity.cs文件

在SrcDemos文件夹下添加该文件。

using System;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Widget; namespace MyDemos.SrcDemos
{
[Activity(Label = "ch1502MainActivity")]
public class ch1502MainActivity : Activity
{
// 通知的唯一ID号
private static readonly int ButtonClickNotificationId = 1000; // 单击按钮的次数
private int count = 1; protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.ch1502_Main);
Button button = FindViewById<Button>(Resource.Id.ch1502_btn1);
button.Click += Button_Click;
} private void Button_Click(object sender, EventArgs e)
{
// 传递count到下一个activity:
Bundle valuesForActivity = new Bundle();
valuesForActivity.PutInt("count", count); // 当用户单击通知时,启动SecondActivity
Intent resultIntent = new Intent(this, typeof(ch1502SecondActivity)); resultIntent.PutExtras(valuesForActivity); // 为跨任务导航构造back stack
TaskStackBuilder stackBuilder = TaskStackBuilder.Create(this);
stackBuilder.AddParentStack(Java.Lang.Class.FromType(typeof(ch1502SecondActivity)));
stackBuilder.AddNextIntent(resultIntent); // 为 back stack 创建 PendingIntent
PendingIntent resultPendingIntent = stackBuilder.GetPendingIntent(0, PendingIntentFlags.UpdateCurrent); // 创建通知
Notification.Builder builder = new Notification.Builder(this)
.SetAutoCancel(true) // 单击通知时取消通知(让通知消失)
.SetContentIntent(resultPendingIntent) // 单击Intent时启动activity
.SetContentTitle("简单通知示例") // 标题
.SetNumber(count) // 在Content Info中显示count的值
.SetDefaults(NotificationDefaults.Sound | NotificationDefaults.Vibrate) //显示通知时播放声音并振动
.SetSmallIcon(Resource.Drawable.ch1502statButton) // 显示的通知图标
.SetContentText(string.Format("你已经单击了 {0} 次按钮。", count)); // 显示的消息 // 发布通知
NotificationManager notificationManager = GetSystemService(NotificationService) as NotificationManager;
notificationManager.Notify(ButtonClickNotificationId, builder.Build()); // 按钮次数加1
count++;
}
}
}

【Android】15.4 例15-2--Notification基本用法的更多相关文章

  1. 【Android】15.5 例15-3—Notification的各种属性演示

    分类:C#.Android.VS2015: 创建日期:2016-02-29 一.简介 利用这个例子,可测试通知的各种属性以及这些不同属性选项呈现的效果. 另外,在这个例子中,还演示了如何读写SD中的图 ...

  2. 【Android】15.0 第15章 广播和通知—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-28 一.简介 广播(Broadcast):其功能类似于收音机的广播,你只要调到那个台(只要在接收的类中注册了要接收的广播),就能 ...

  3. [转]phoneGap3.0安装步骤(以windows下的android环境为例):

    phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) ...

  4. Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法

    Ext.Net学习笔记15:Ext.Net GridPanel 汇总(Summary)用法 Summary的用法和Group一样简单,分为两步: 启用Summary功能 在Feature标签内,添加如 ...

  5. Data truncation: Incorrect datetime value: 'May 15, 2019 4:15:37 PM

    因为系统在windows下测试过是正常的 windows下的jdk+ windows下安装的mysql 全部cases通过 linux下的jdk + windows下安装的mysql 新增和更新,影响 ...

  6. JAVA 基础编程练习题15 【程序 15 排序】

    15 [程序 15 排序] 题目:输入三个整数 x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y 的 ...

  7. Python:安装opencv出现错误Could not find a version that satisfies the requirement numpy==1.13.3 (from versions: 1.14.5, 1.14.6, 1.15.0rc2, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.16.0rc1, 1.16.0rc2,

    安装opencv的时候,出现numpy的版本不匹配,卸载了不匹配的版本,重新安装却是一点用都没有,后面尝试了一下这里的提示pip更新,居然安装成功了,看来pip的版本过低真是误事啊. 报错是: Cou ...

  8. iOS7编程Cookbook中例15.8中一个小问题

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 该书的15.8例子标题为Editing Videos on a ...

  9. Android菜鸟成长记15 -- BitMap

    BitMap简介 Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.本文从应用的角度,着重介绍怎么用Bi ...

随机推荐

  1. [转] 上级向的十个iOS面试问题

    上级向的十个iOS面试问题 转自 http://onevcat.com/2013/04/ios-interview/ 不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术 ...

  2. Python学习(四)数据结构 —— str

    Python 字符串 str 本章大致介绍了 Python 的字符串类型 str,包括字符串的赋值及转义.字符串运算符.字符串格式化输出 以及 一些字符串的内建函数等. 字符串赋值及转义 我们可以使用 ...

  3. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  4. Java性能监控工具:VisualVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

  5. git 使用详解-- tag打标签

    Git 的标签管理.跟大多数的 VCS 工具一样,git 也有在历史状态的关键点“贴标签”的功能,一般人们用这个功能来标记发布点(例如’v1.0′). 列出git中现有标签 要想列出git中现有的所有 ...

  6. sscanf %*s

    一次在源码里看到 %*s 的格式,从未见过百思不得其解,今天用google的code搜索,搜到一些使用范例,猜测%*s 是说这里有一些字符,长度不一定,按正则表达式的习惯,*代办任意非负整数.例如: ...

  7. SqlServer 删除重复记录

    在给一个客户上线的系统里发现有一张表里出现了重复的数据,结果通过排查代码发现确实业务逻辑有问题,在修改了代码后需要将为数据库里的重复数据删除 在CSDN上找到解决方案,对线上的数据库尽量不要执行删除操 ...

  8. 如何获取浏览器URL中查询字符串的参数?

    如何获取浏览器URL中查询字符串的参数? 想要知道怎样解决这个问题,首先我们先认识一下Location对象. Location对象包含了当前页面与位置(url)相关的信息 URL示例:http://w ...

  9. Cocos2d-x -- 图片菜单按钮

    Scene* MainMenu::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); / ...

  10. 苹果开发——向App Store提交应用

    原地址:http://zengwu3915.blog.163.com/blog/static/2783489720137410539278/ 完成一个app应用后,肯定是要提交的,下面聊一下关于向Ap ...