赞美桃花的诗句 古诗:MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒 - oj...

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 19:46:22
MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒 收藏 此文于2011-04-26被推荐到CSDN首页
如何被推荐?
 在Android手机界面的最上方有一条显示时间、信号强度和电池状态等信息的区域,这就是Android的状态栏。当系统有一些信息要通知手机用户时,例如,收到新短信,电子邮件或未接来电时,系统通常会把信息显示在状态栏中,有的仅显示小图标,有的则显示图标及文字提醒,用手指按住状态栏往下拉,还可以展开状态栏,查看所有系统发出的信息。 在程序中,要如何把提示信息放入状态栏,又要如何显示小图标呢?Android API为了管理通知信息(Notification),定义了NotificationManager,只要调用它的Notify方法,即可将信息显示在状态栏。 先准备几张用于显示的图片,然后在界面上放一个Spinner,通过点击不同的选项,更换相应的图标。布局文件很简单:view plaincopy to clipboardprint?
01. 
02.03.                android:layout_width="fill_parent" 
04.                android:layout_height="fill_parent"> 
05.  06.           android:layout_width="fill_parent" 
07.           android:layout_height="wrap_content">
 
08.
 

                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
             android:layout_width="fill_parent"
           android:layout_height="wrap_content">

  view plaincopy to clipboardprint?01.NotificationManager nm;   02.protected override void OnCreate(Bundle bundle)   03.{   04.    base.OnCreate(bundle);   05.    SetContentView(Resource.Layout.Main);   06.    try  07.    {   08.        nm = this.GetSystemService(Service.NotificationService) as NotificationManager;   09.        Spinner mySpinner = FindViewById(Resource.Id.mySpinnner);   10.        ArrayAdapter adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, new string[] { "显示图标1", "显示图标2", "显示图标3", "显示图标4", "关闭显示" });   11.        mySpinner.Adapter = adapter;   12.        mySpinner.ItemSelected += (sender, e) =>   13.        {   14.            switch (e.Position)   15.            {   16.                case 0:   17.                    Notify(Resource.Drawable.btn1, "通知1");   18.                    break;   19.                case 1:   20.                    Notify(Resource.Drawable.btn2, "通知2");   21.                    break;   22.                case 2:   23.                    Notify(Resource.Drawable.btn3, "通知3");   24.                    break;   25.                case 3:   26.                    Notify(Resource.Drawable.btn4, "通知4");   27.                    break;   28.                case 4:   29.                    nm.Cancel(0);   30.                    break;   31.            }   32.        };   33.    }   34.    catch (System.Exception ex)   35.    {   36.        MessageBox.ShowErrorMessage(this, ex);   37.    }   38.}   39.private void Notify(int iconId, string text)   40.{   41.    Activity2 act2 = new Activity2();   42.    Intent notifyIntent = new Intent(this, act2.Class);   43.    notifyIntent.SetFlags(ActivityFlags.NewTask);   44.    PendingIntent appIntent = PendingIntent.GetActivity(this, 0, notifyIntent, 0);   45.    Notification n = new Notification   46.    {   47.        Icon = iconId,   48.        TickerText = new Java.Lang.String(text),   49.        Defaults = NotificationDefaults.Sound,   50.    };   51.    n.SetLatestEventInfo(this, "通知", text, appIntent);   52.    nm.Notify(0, n);   53.}          NotificationManager nm;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            try
            {
                nm = this.GetSystemService(Service.NotificationService) as NotificationManager;
                Spinner mySpinner = FindViewById(Resource.Id.mySpinnner);
                ArrayAdapter adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, new string[] { "显示图标1", "显示图标2", "显示图标3", "显示图标4", "关闭显示" });
                mySpinner.Adapter = adapter;
                mySpinner.ItemSelected += (sender, e) =>
                {
                    switch (e.Position)
                    {
                        case 0:
                            Notify(Resource.Drawable.btn1, "通知1");
                            break;
                        case 1:
                            Notify(Resource.Drawable.btn2, "通知2");
                            break;
                        case 2:
                            Notify(Resource.Drawable.btn3, "通知3");
                            break;
                        case 3:
                            Notify(Resource.Drawable.btn4, "通知4");
                            break;
                        case 4:
                            nm.Cancel(0);
                            break;
                    }
                };
            }
            catch (System.Exception ex)
            {
                MessageBox.ShowErrorMessage(this, ex);
            }
        }
        private void Notify(int iconId, string text)
        {
            Activity2 act2 = new Activity2();
            Intent notifyIntent = new Intent(this, act2.Class);
            notifyIntent.SetFlags(ActivityFlags.NewTask);
            PendingIntent appIntent = PendingIntent.GetActivity(this, 0, notifyIntent, 0);
            Notification n = new Notification
            {
                Icon = iconId,
                TickerText = new Java.Lang.String(text),
                Defaults = NotificationDefaults.Sound,
            };
            n.SetLatestEventInfo(this, "通知", text, appIntent);
            nm.Notify(0, n);
        }
   在将状态栏拉下来单击通知的时候打开Activity2,在Activity2中,显示一个Toast。view plaincopy to clipboardprint?
01.[Activity(Label = "My Activity")]  
02.public class Activity2 : Activity  
03.{  
04.    protected override void OnCreate(Bundle bundle)  
05.    {  
06.        base.OnCreate(bundle);  
07.        SetContentView(Resource.Layout.Activity2);  
08.        Toast.MakeText(this, "由通知区域点击打开的", ToastLength.Short).Show();  
09.    }  
10.} 
    [Activity(Label = "My Activity")]
    public class Activity2 : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Activity2);
            Toast.MakeText(this, "由通知区域点击打开的", ToastLength.Short).Show();
        }
    }
  运行效果:  发出Notification时,有三个地方可以显示文字,第一个是Notification被添加到状态栏时,跟着图标跑出的文字,在程序中以n.TickerText来设置;其余两个地方则是在Notification列表中显示的信息标题与信息内容,实在调用SetLatestEventInfo()方法是所设置的。如果在状态栏中不显示文字,只显示图片的话,只要不设置TickerText就可以了。 如果想要在通知显示的时候手机震动的话,我们就要使用Vibrator对象了。设置震动事件中,必须要知道命令其振动的时间长短、震动事件的周期等,而要在Android里设置的数值,都是以毫秒为计算的,所以在做设置的时候要注意下,如果设置的时间太小,会感觉不出来。view plaincopy to clipboardprint?01.Vibrator v = this.Application.GetSystemService(Service.VibratorService) as Vibrator;   02.v.Vibrate(new long[] { 100, 10, 100, 1000 }, 0);  Vibrator v = this.Application.GetSystemService(Service.VibratorService) as Vibrator;
v.Vibrate(new long[] { 100, 10, 100, 1000 }, 0);  Vibrate方法的第一个参数是一个long数组,表示震动的频率,大家可以改变数组的长度及值来试试效果。第二个参数repeat,当等于0时,震动会一直持续,若等于-1,震动就会出现一轮,震动完毕就不会再有动作。 要使手机震动,必须要在AndroidManifest.xml中加入VIBRATE权限。 view plaincopy to clipboardprint?01.   记得在模拟器上是模拟不出震动的哦~~拷到手机里震一下吧~~ 发表于 @ 2011年04月25日 21:55:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:MonoDroid学习笔记(十一)—— 使用SQLiteOpenHelper实现简易备忘录
查看最新精华文章 请访问博客首页相关文章发表评论表 情:          评论内容: 用 户 名:登录 注册 匿名评论 匿名用户验 证 码:  重新获得验证码
  专区推荐内容Android应用换电视,前30名有效!
【教程】笔记本安装MeeGo
微软BI解决方案开发简介
如何用Qt设置桌面背景
下载Windows Phone 中文培训包
下载 Windows Phone 开发工具
全新Windows Phone 开发中心
VS2010 SharePoint 入门
【免费下载】WebMatrix建站工具
AIX 专区有奖话题讨论
4.21日Adobe企业RIA开发者研讨会
MeeGo中文社区全新呈现
【图】爱上NOOK COLOR的5个理由
IPAD&NOOK COLOR屏幕对比多图
【教程】AppUp 进阶基础篇
Nokia CEO:下一步会与谁合作?
点评三星Smart TV智能电视
太震撼了!首次参加IDF有感
【教程】基于VC色温图效果实现
【教程】游戏技巧特效处理
Qt开发者社区精彩全新呈现!
Firefox 4在meego上成功安装
IDF2011:多图详解MeeGo 3月后正式发布
PayPal助力移动支付应用
<<>> 热门招聘职位【完美世界】(原完美时空)诚聘各类游戏领域人才
【苏州迈科网络】诚聘Linux&C研发/产品/Java/产品/项目经理
【梦擎科技】诚聘Android ,iPhone ,C++ 通讯应用开发等IT人才
【上海智涌】高薪诚聘 C++高级工程师
【创思佳天津公司】招JAVA开发爱好者人才及天才设计师
【仟游软件2K Games China】诚聘程序员/高级程序员
【西普科技】高薪诚聘.net软件工程师、网页设计、产品经理
【海慧公司】诚聘中高级程序员
【亿阳信通】诚邀您的加盟!
【点点网】诚聘英才!!!
【Amazon】亚马逊诚聘技术专家!
【趣游北京】高薪诚聘C++高级工程师/工程师 AS3工程师
【华夏纬讯】高薪诚聘C#程序员
【航天信息股份有限公司】诚聘系统架构,需求分析、JAVA开发、C/C++开发研发岗位热招中
【可得眼镜网】诚聘网站技术开发工程师、UED、DBA以及美工设计
【上海东方久信集团】招聘.NET软件工程师
【重庆大龙网】高薪诚聘中高级软件工程师
【北京盛安怡和公司】招聘Windows C/C++,php等人员
【瑞易信息美资】高薪诚聘软件开发及数据库人才
荷兰互联网公司诚聘Web(Rails)开发工程师
【杭州引力】高薪诚聘ios开发人员
【推博网】诚聘PHP/VC/MYSQLDBA/UI/WEB设计等职位
这可能是你从未见过的技术人员招聘广告!
【群硕软件】诚聘优秀IT人才(.Net,Java, Android etc)
【完美世界】(原完美时空)诚聘各类游戏领域人才
【苏州迈科网络】诚聘Linux&C研发/产品/Java/产品/项目经理
【梦擎科技】诚聘Android ,iPhone ,C++ 通讯应用开发等IT人才
【上海智涌】高薪诚聘 C++高级工程师
【创思佳天津公司】招JAVA开发爱好者人才及天才设计师
【仟游软件2K Games China】诚聘程序员/高级程序员
【西普科技】高薪诚聘.net软件工程师、网页设计、产品经理
【海慧公司】诚聘中高级程序员
【亿阳信通】诚邀您的加盟!
【点点网】诚聘英才!!!
【Amazon】亚马逊诚聘技术专家!
【趣游北京】高薪诚聘C++高级工程师/工程师 AS3工程师
【华夏纬讯】高薪诚聘C#程序员
【航天信息股份有限公司】诚聘系统架构,需求分析、JAVA开发、C/C++开发研发岗位热招中
【可得眼镜网】诚聘网站技术开发工程师、UED、DBA以及美工设计
【上海东方久信集团】招聘.NET软件工程师
【重庆大龙网】高薪诚聘中高级软件工程师
【北京盛安怡和公司】招聘Windows C/C++,php等人员
【瑞易信息美资】高薪诚聘软件开发及数据库人才
荷兰互联网公司诚聘Web(Rails)开发工程师
【杭州引力】高薪诚聘ios开发人员
【推博网】诚聘PHP/VC/MYSQLDBA/UI/WEB设计等职位
这可能是你从未见过的技术人员招聘广告!
【群硕软件】诚聘优秀IT人才(.Net,Java, Android etc)
. 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
 Email:webmaster@csdn.net
Copyright © 1999-2010, CSDN.NET, All Rights Reserved
  本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ojlovecd/archive/2011/04/25/6362709.aspx
MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒 - oj... 学习笔记——HTML头部信息(Head) 特别提醒:请注意,骨折病人有9忌!!! 警方提醒:请注意检查您家门口是否有圆圈、三角、对勾、叉号、闪电等符号 警方提醒:请注意检查您家门口是否有圆圈、三角、对勾、叉号、闪电等符号 点评“十二五”规划人口政策—请放妇女一条“生”路吧 - 易富贤的日志 - 网易博客 点评“十二五”规划人口政策—请放妇女一条“生”吧 - 易富贤的日志 - 网易博客 点评“十二五”规划人口政策—请放妇女一条“生贤的日志 - 网易博客 点评“十二五”规划人口政策—请放妇女一条“”路吧 - 易富贤的日志 - 网易博客 十七届中央纪委第六次全会学习笔记(十二) 学习笔记—— 字体大小 【新提醒】我在现场——学习观察小案例 公安局特别提醒请相互转告,歹徒又有新的手段啦! 公安局特别提醒请相互转告,歹徒又有新的手段啦!-111012 十二宫位笔记——【转】 N种信息提醒您: 《学习哪有那么难》学习笔记! 《学习哪有那么难》学习笔记! 《学习哪有那么难》学习笔记 【新提醒】生活插曲看衣仿衣集——款款迷人(有图解) 【新提醒】sql语句学习 细点 学习笔记——文字颜色 学习笔记——图片右边+文字 学习笔记——图片添加文字