Android状态栏提醒(Notification,NotificationManager)的使用!
大家好今天简单讲一下Android状态栏提醒,这个在开发中也会经常使用,当我们插上USB会有状态栏提醒,来短信时也会有状态栏的提醒。
而在Android中有提醒功能的也可以用AlertDialog,但是我们要审重的使用,因为当使用AlertDialog 的时候,用户正在进行的操作将会被打断
因为当前焦点被AlertDialog得到。我们可以想像一下,当用户打游戏正爽的时候,这时候来了一条短信。如果这时候短信用AlertDialog提醒,用户必须先去处理这条提醒,从而才能继续游戏。用户可能会活活被气死。而使用Notification就不会带来这些麻烦事,用户完全可以打完游戏再去看这条短信。所以在开发中应根据实际需求,选择合适的控件。
好了我今天又简单写了一个Demo, 教大家如何使用Notification,大致分以下几个步骤:
第一步:新建一个Android工程命名为NotificationDemo.
第二步:修改main.xml代码如下:
01.<?xml version="1.0" encoding="utf-8"?> 02.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:orientation="vertical" 04. android:layout_width="fill_parent" 05. android:layout_height="fill_parent" 06. > 07.<TextView 08. android:layout_width="fill_parent" 09. android:layout_height="wrap_content" 10. android:text="Welcome to Mr Wei's blog" 11. /> 12.<Button 13. android:id="@+id/showButton" 14. android:layout_width="fill_parent" 15. android:layout_height="wrap_content" 16. android:text="showNotification" 17./> 18.<Button 19. android:id="@+id/cancelButton" 20. android:layout_width="fill_parent" 21. android:layout_height="wrap_content" 22. android:text="cancelNotification" 23./> 24.</LinearLayout> 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Android_Tutor/archive/2010/06/27/5696773.aspx
第三步:修改NotificationDemo.java代码如下:
01.package com.tutor.notification; 02.import android.app.Activity; 03.import android.app.Notification; 04.import android.app.NotificationManager; 05.import android.app.PendingIntent; 06.import android.content.Context; 07.import android.content.Intent; 08.import android.os.Bundle; 09.import android.view.View; 10.import android.view.View.OnClickListener; 11.import android.widget.Button; 12.public class NotificationDemo extends Activity implements OnClickListener{ 13. 14. private Context mContext; 15. private Button showButton,cancelButton; 16. private Notification mNotification; 17. private NotificationManager mNotificationManager; 18. private final static int NOTIFICATION_ID = 0x0001; 19. 20. @Override 21. public void onCreate(Bundle savedInstanceState) { 22. super.onCreate(savedInstanceState); 23. setContentView(R.layout.main); 24. 25. setupViews(); 26. } 27. //这里是初始化一些操作,可以看到onCreate()方法里代码非常简洁。 28. public void setupViews(){ 29. mContext = NotificationDemo.this; 30. showButton = (Button)findViewById(R.id.showButton); 31. cancelButton = (Button)findViewById(R.id.cancelButton); 32. 33. mNotification = new Notification(R.drawable.icon,"This is a notification.",System.currentTimeMillis()); 34. //将使用默认的声音来提醒用户 35. mNotification.defaults = Notification.DEFAULT_SOUND; 36. mNotificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE); 37. 38. 39. showButton.setOnClickListener(this); 40. cancelButton.setOnClickListener(this); 41. } 42. //按钮点击事件响应 43. public void onClick(View v) { 44. 45. if(v == showButton){ 46. Intent mIntent = new Intent(mContext,NotificationDemo.class); 47. //这里需要设置Intent.FLAG_ACTIVITY_NEW_TASK属性 48. mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 49. PendingIntent mContentIntent =PendingIntent.getActivity(mContext,0, mIntent, 0); 50. //这里必需要用setLatestEventInfo(上下文,标题,内容,PendingIntent)不然会报错. 51. mNotification.setLatestEventInfo(mContext, "10086", "您的当前话费不足,请充值.哈哈~", mContentIntent); 52. //这里发送通知(消息ID,通知对象) 53. mNotificationManager.notify(NOTIFICATION_ID, mNotification); 54. }else if(v == cancelButton){ 55. //取消只要把通知ID传过来就OK了. 56. mNotificationManager.cancel(NOTIFICATION_ID); 57. } 58. } 59.} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Android_Tutor/archive/2010/06/27/5696773.aspx
第四步:运行Android工程,效果如下图所示:
出自http://blog.csdn.net/Android_Tutor/archive/2010/06/27/5696773.aspx
更多相关文章
- Android开发——记账App开发项目分享(一)之用户登录
- android app --- 快速集成SharaSDK ,SMS实现短信验证(一)2.0版之前
- Android开发之核心特性SearchView的开发使用(源代码分享)
- 自定义android用户控件,使用回调函数实现自定义事件
- Android studio怎么使用代码检查工具Analyze?
- 跟Google学写代码:Android运行时权限处理
- Android 2.2用户超过一半
- Android调用手机相机与手机图库选择用户头像
- 亲测可用Android原生代码添加系统服务