ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:85.01KB ,
资源ID:11206702      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11206702.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Android-通知.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Android-通知.docx

1、 android Notification 的使用 最近一直在研究 android ,并一边研究一边做应用。其中遇到了把程序通知常驻在 Notification 栏,并且不能被 clear 掉(就像android QQ一样)的问题。经过研究实现了其功能,现把 Notification 的使用总结如下: Notification 的使用需要导入 3 个类 ? 1 2 3 import android.app.PendingIntent; import android.app.NotificationManager; import android.app.Notifica

2、tion; 代码示例及说明 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); Notification n = new Notification(R.drawable.chat, "Hello,there!", System.currentTimeMillis()); n.flags = Notification.F

3、LAG_AUTO_CANCEL; Intent i = new Intent(arg0.getContext(), NotificationShow.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); //PendingIntent PendingIntent contentIntent = PendingIntent.getActivity( arg0.getContext(), R.string.app_name, i, PendingIntent.FL

4、AG_UPDATE_CURRENT); n.setLatestEventInfo( arg0.getContext(), "Hello,there!", "Hello,there,I'm john.", contentIntent); nm.notify(R.string.app_name, n); 下面依次对每一段代码进行分析: ? 1 NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 创建 NotificationManager

5、其中创建的 nm 对象负责“发出”与“取消” Notification。 ? 1 2 Notification n = new Notification(R.drawable.chat, "Hello,there!", System.currentTimeMillis()); n.flags = Notification.FLAG_ONGOING_EVENT; 创建 Notification ,参数依次为:icon的资源id,在状态栏上展示的滚动信息,时间。其中创建的 n 对象用来描述出现在系统通知栏的信息,之后我们将会看到会在 n 对象上设置点击此条通知发出的Intent。

6、 ? 1 n.flags = Notification.FLAG_AUTO_CANCEL; 设置 n.flags 为 Notification.FLAG_AUTO_CANCEL ,该标志表示当用户点击 Clear 之后,能够清除该通知。 ? 1 2 Intent i = new Intent(arg0.getContext(), NotificationShow.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK); 创建一个Intent,该Intent使得当用户点击

7、该通知后发出这个Intent 请注意,如果要以该Intent启动一个Activity,一定要设置 Intent.FLAG_ACTIVITY_NEW_TASK 标记。 Intent.FLAG_ACTIVITY_CLEAR_TOP :如果在当前Task中,有要启动的Activity,那么把该Acitivity之前的所有Activity都关掉,并把此Activity置前以避免创建Activity的实例 Intent.FLAG_ACTIVITY_NEW_TASK :系统会检查当前所有已创建的Task中是否有该要启动的Activity的Task,若有,则在该Task上创建Activity,若没有则

8、新建具有该Activity属性的Task,并在该新建的Task上创建Activity。更多请参见 “ (转载)Android下Affinities和Task ” ? 1 2 3 4 5 6 //PendingIntent PendingIntent contentIntent = PendingIntent.getActivity( arg0.getContext(), R.string.app_name, i, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent 为Intent的包装,这里是启动Intent的描

9、述,PendingIntent.getActivity 返回的PendingIntent表示,此PendingIntent实例中的Intent是用于启动 Activity 的Intent。PendingIntent.getActivity的参数依次为:Context,发送者的请求码(可以填0),用于系统发送的Intent,标志位。 其中 PendingIntent.FLAG_UPDATE_CURRENT 表示如果该描述的PendingIntent已存在,则改变已存在的PendingIntent的Extra数据为新的PendingIntent的Extra数据。 这里再简要说一下 Intent

10、 与 PendingIntent 的区别: Intent :意图,即告诉系统我要干什么,然后系统根据这个Intent做对应的事。如startActivity相当于发送消息,而Intent是消息的内容。 PendingIntent :包装Intent,Intent 是我们直接使用 startActivity , startService 或 sendBroadcast 启动某项工作的意图。而某些时候,我们并不能直接调用startActivity , startServide 或 sendBroadcast ,而是当程序或系统达到某一条件才发送Intent。如这里的Notification,当

11、用户点击Notification之后,由系统发出一条Activity 的 Intent 。因此如果我们不用某种方法来告诉系统的话,系统是不知道是使用 startActivity ,startService 还是 sendBroadcast 来启动Intent 的(当然还有其他的“描述”),因此这里便需要PendingIntent。 ? 1 2 3 4 5 n.setLatestEventInfo( arg0.getContext(), "Hello,there!", "Hello,there,I'm john.", contentIntent); 设置显示在通知下拉

12、框中的信息,参数依次为:Context,标题,内容,PendingIntent。 ? 1 nm.notify(R.string.app_name, n); 启动Notification,参数依次为:在你的程序中标识Notification的id值(用来区分同一程序中的不同Notifycation,如果程序中只有一个Notification那么这里随便你填什么都可以,不过类型必须要为int),要通知的Notification。 如何使自己的Notification像Android QQ一样能出现在 “正在运行的”栏目下面 其实很简单,只需设置Notification.flags =

13、Notification.FLAG_ONGOING_EVENT;便可以了。 如何改变 Notification 在“正在运行的”栏目下面的布局 创建 RemoteViews 并赋给 Notification.contentView ,再把 PendingIntent 赋给 Notification.contentIntent 便可以了,如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 PendingIntent contentIntent = PendingIntent.getActivity( arg0.getContext(),

14、R.string.app_name, i, PendingIntent.FLAG_UPDATE_CURRENT); RemoteViews rv = new RemoteViews(Main.this.getPackageName(), R.layout.notification_view); rv.setImageViewResource(R.id.image, R.drawable.chat); rv.setTextViewText(R.id.text, "Hello,there,I'm john."); n.contentView = rv; n.contentInten

15、t = contentIntent; nm.notify(R.string.app_name, n); 注意,如果使用了contentView,那么便不要使用Notification.setLatestEventInfo。如果setLatestEventInfo在赋给 Notification.contentView 的代码之后,那么contentView的效果将被覆盖,显示的便是 setLatestEventInfo 的效果;如果 setLatestEventInfo 在 Notification.contentView 的代码之前,那么显示的便是 Notification.conten

16、tView 的效果,也就是说不管你想要setLatestEventInfo 或 contentView 的自定义效果,请保证始终只有一句设置代码,因为在最后一句绑定的时候,之前的设置contentView或setLatestEventInfo的代码都是完全没有必要的。 android之Notification通知 分类: 杂乱知识速记2011-03-14 21:407679人阅读评论(12)收藏举报 androidbuttonnotificationsservice手机manager 我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里

17、有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的。 [java:nogutter] view plaincopyprint? 1. package .chenzheng_java; 2. 3. import android.app.Activity; 4. import android.app.Notification; 5. import android.app.NotificationManager; 6. import android.app.PendingIntent; 7. import android.

18、content.Context; 8. import android.content.Intent; 9. import .Uri; 10. import android.os.Bundle; 11. import android.provider.MediaStore.Audio; 12. import android.view.View; 13. import android.widget.Button; 14. 15. /*** 16. * @description 状态栏通知相关 17. * @author chenzheng_java 18.

19、 * 19. */ 20. public class NotificationActivity extends Activity { 21. @Override 22. protected void onCreate(Bundle savedInstanceState) { 23. super.onCreate(savedInstanceState); 24. setContentView(R.layout.notification); 25. 26. Button button = (Button) findViewById(R.id.button); 27

20、 button.setOnClickListener(new View.OnClickListener() { 28. 29. @Override 30. public void onClick(View v) { 31. addNotificaction(); 32. 33. } 34. }); 35. 36. } 37. 38. 39. 40. 41. /** 42. * 添加一个notification 43. */ 44. private void addNotificaction() { 45. NotificationMa

21、nager manager = (NotificationManager) this 46. .getSystemService(Context.NOTIFICATION_SERVICE); 47. // 创建一个Notification 48. Notification notification = new Notification(); 49. // 设置显示在手机最上边的状态栏的图标 50. notification.icon = R.drawable.excel; 51. // 当当前的notification被放到状态栏上的时候,提示内容 52. noti

22、fication.tickerText = "注意了,我被扔到状态栏了"; 53. 54. /*** 55. * notification.contentIntent:一个PendingIntent对象,当用户点击了状态栏上的图标时,该Intent会被触发 56. * notification.contentView:我们可以不在状态栏放图标而是放一个view 57. * notification.deleteIntent 当当前notification被移除时执行的intent 58. * notification.vibrate 当手机震动时,震动周期设置 59.

23、 */ 60. // 添加声音提示 61. notification.defaults=Notification.DEFAULT_SOUND; 62. // audioStreamType的值必须AudioManager中的值,代表着响铃的模式 63. notification.audioStreamType= android.media.AudioManager.ADJUST_LOWER; 64. 65. //下边的两个方式可以添加音乐 66. //notification.sound = Uri.parse("file:///sdcard/notification

24、/ringer.mp3"); 67. //notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6"); 68. Intent intent = new Intent(this, Notification2Activity.class); 69. PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); 70. // 点击状态栏的图标

25、出现的提示信息设置 71. notification.setLatestEventInfo(this, "内容提示:", "我就是一个测试文件", pendingIntent); 72. manager.notify(1, notification); 73. 74. } 75. 76. } 点击按钮时候,状态栏会显示: 看到了吧,状态栏多出来一个excel图标,当我按住图标不放,往下拖动的时候,出来了这个页面 然后,当我们点击这个对话框之后,就会触发intent,跳转到Notification2Activity.java这个activity。 ---

26、 注意,NotificationManager里的notify(id,notification)中的id是用来唯一标识我们当前的这个notification的标识符,我们通过cancel方法删除通知时,传递的就是这个值。可能读者在看很多文档的时候,发现这个地方指定了一个莫名奇妙的值,例如R.drawable.icon,很多朋友就纳闷了,为什么这里要指定一个图片呢。这里笔者就介绍下,为什么呢? 答案其实很简单,我们都知道,我

27、们这里对参数的唯一要求就是,这个id要和notify方法中的一致,并且是唯一;只要满足了这两项,其他的都无所谓。notify和cancel里一致我们作为开发者,太好控制了,但是唯一呢,我们还真不好说,于是这里就有些人动小脑筋了,很巧妙的用了我们系统中的图片资源或者其他资源的索引ID,我们都知道,这些值肯定都是唯一的! ------------------------------------------------------------------------------------------ 下面是从网上找的一些资料: 如果要添加一个Notification,可以按照以下几个步骤

28、1:获取NotificationManager: NotificationManager m_NotificationManager=(NotificationManager)this.getSystemService(NOTIFICATION_SERVICE); 2:定义一个Notification: Notification m_Notification=new Notification(); 3:设置Notification的各种属性: //设置通知在状态栏显示的图标 m_Notification.icon=R.drawable.icon; //当我们点击通知时显示的内

29、容 m_Notification.tickerText="Button1 通知内容....."; 通知时发出的默认声音 m_Notification.defaults=Notification.DEFAULT_SOUND; //设置通知显示的参数 Intent m_Intent=new Intent(NotificationDemo.this,DesActivity.class); PendingIntent m_PendingIntent=PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0); m

30、Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知",m_PendingIntent ); //这个可以理解为开始执行这个通知 m_NotificationManager.notify(0,m_Notification); 4:既然可以增加同样我们也可以删除。当然是只是删除你自己增加的。 m_NotificationManager.cancel(0); 这里的0是一个ID号码,和notify第一个参数0一样。 这也就完成了,添加删除工作。 ------------------

31、 NoticificationManager很容易可以放在状态栏,也很容易实现从statusbar进入程序 中, NoticificationManager中通过intent执行此程序的activity就可以了 NoticificationManager状态栏操作 NotificationManager(通知管理器): NotificationManager负责通知用户事件的发生. Notification

32、Manager有三个公共方法: 1. cancel(int id) 取消以前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走. 2. cancelAll() 取消以前显示的所有通知. 3. notify(int id, Notification notification) 把通知持久的发送到状态条上. //初始化NotificationManager: NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

33、Notification代表着一个通知. Notification的属性: audioStreamType 当声音响起时,所用的音频流的类型 contentIntent 当通知条目被点击,就执行这个被设置的Intent. contentView 当通知被显示在状态条上的时候,同时这个被设置的视图被显示. defaults 指定哪个值要被设置成默认的. deleteIntent 当用户点击"Clear All Notifications"按钮区删除所有的通知的时候,这个被设置的Intent被执行. icon 状态条所用的图片. iconLevel 假如状态条的图片

34、有几个级别,就设置这里. ledARGB LED灯的颜色. ledOffMS LED关闭时的闪光时间(以毫秒计算) ledOnMS LED开始时的闪光时间(以毫秒计算) number 这个通知代表事件的号码 sound 通知的声音 tickerText 通知被显示在状态条时,所显示的信息 vibrate 振动模式. when 通知的时间戳. 将Notification发送到状态条上: Notification notification = new Notification(); Notification的设置过程…….. nm.notify(0,

35、 notification); //发送到状态条上 ------------------------------------------------------------------------------------------------------------ Notification提供了丰富的手机提示方式: a)在状态栏(Status Bar)显示的通知文本提示,如: notification.tickerText = "hello"; b)发出提示音,如: notification.defaults = Notification.DEFAULT_SOUND;

36、 notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3"); notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6"); c)手机振动,如: notification.defaults = Notification.DEFAULT_VIBRATE; long[] vibrate = {0,100,200,300}; notification.vibrate = vibrate;

37、 d)LED灯闪烁,如: notification.defaults = Notification.DEFAULT_LIGHTS; notification.ledARGB = 0xff00ff00; notification.ledOnMS = 300; notification.ledOffMS = 1000; notification.flags = Notification.FLAG_SHOW_LIGHTS; 4)发送通知: private static final int ID_NOTIFICATION = 1; mNotificationManage

38、r.notify(ID_NOTIFICATION, notification); Android Notification介绍 2011-12-01 21:02:22 我来说两句 收藏 我要投稿 Notification就是在桌面的状态通知栏。这主要涉及三个主要类: Notification:设置通知的各个属性。 NotificationManager:负责发送通知和取消通知 Notification.Builder:Notification内之类,创建Notification对象。非常方便的控制所有的flags,同时构建Notification的风格。 主

39、要作用: 1.创建一个状态条图标。 2.在扩展的状态条窗口中显示额外的信息(和启动一个Intent)。 3.闪灯或LED。 4.电话震动。 5.发出听得见的警告声(铃声,保存的声音文件)。 Notification是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径 下面主要介绍这三个类: 一、NotificationManager 这个类是这三个类中最简单的。主要负责将Notification在状态显示出来和取消。主要包括5个函数:void cancel(int id),void canc

40、el(String tag, int id),void cancelAll(),void notify(int id, Notification notification),notify(String tag, int id, Notification notification) 看看这五个函数就知道这个类的作用了。但是在初始化对象的时候要注意: NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 二、Notification 设置这个类主要是设置Notificat

41、ion的相关属性。初始化 Notification n = new Notification(); Notification里面有很多属性下面选择几个常用的介绍一下 icon 这个是设置通知的图标。像QQ的小企鹅 sound 这个是设置来通知时的提示音。 tickerText 设置提示的文字。 vibrate 来通知时振动。 when 设置来通知时的时间 flag 这个很有意思是设置通知在状态栏显示的方式。它的值可以设置为虾米这些值: FLAG_NO_CLEAR 将flag设置为这个属性那么通知栏的那个清楚按钮就不会出现 FLAG_ONGOING_EVENT 将flag设置

42、为这个属性那么通知就会像QQ一样一直在状态栏显示 DEFAULT_ALL 将所有属性设置为默认 DEFAULT_SOUND 将提示声音设置为默认 DEFAULT_VIBRATE 将震动设置为默认 三、Notification.Builder 这个类一般用于管理Notification,动态的设置Notification的一些属性。即用set来设置。也没啥好说的。 看一个例子:这个例子还需要在xml中添加两个按钮 public class Main extends Activity { private Button sendBtn , cancelBtn; private No

43、tification n; private NotificationManager nm; //Notification的标示ID private static final int ID = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //实例化按钮 sendBtn = (Button)this.findViewById(R.id.sendBtn); cance

44、lBtn = (Button)this.findViewById(R.id.cancelBtn); //获取NotificationManager实例 String service = NOTIFICATION_SERVICE; nm = (NotificationManager)this.getSystemService(service); //实例化Notification n = new Notification(); //设置显示图标,该图标会在状态栏显示 int icon = R.drawable.icon; //设置显示提示信息,该信息也会在状态栏显示 Strin

45、g tickerText = "Test Notifaction"; //显示时间 long when = System.currentTimeMillis(); n.icon = icon; n.tickerText = tickerText; n.when = when; n.flags = Notification.FLAG_NO_CLEAR; n.flags = Notification.FLAG_ONGOING_EVENT; //为按钮添加监听器 sendBtn.setOnClickListener(sendClickListener); cancelBtn.se

46、tOnClickListener(cancelClickListener); } private OnClickListener sendClickListener = new OnClickListener() { @Override public void onClick(View v) { //实例化Intent Intent intent = new Intent(Main.this, Main.class); //获取PendingIntent PendingIntent pi = PendingIntent.getActivity(Main.this, 0, intent, 0); //设置事件信息 n.setLatestEventInfo(Main.this, "My Title", "My Content", pi); //发出通知 nm.notify(ID, n);

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服