Android状态栏提醒--Notification的使用

转自:http://blog.csdn.net/Android_Tutor/article/details/5696773

        今天简单讲一下Android状态栏提醒,这个在开发中也会经常使用,当我们插上USB会有状态栏提醒,来短信时也会有状态栏的提醒。

而在Android中有提醒功能的也可以用AlertDialog,但是我们要审重的使用,因为当使用AlertDialog 的时候,用户正在进行的操作将会被打断

因为当前焦点被AlertDialog得到。我们可以想像一下,当用户打游戏正爽的时候,这时候来了一条短信。如果这时候短信用AlertDialog提醒,用户必须先去处理这条提醒,从而才能继续游戏。用户可能会活活被气死。而使用Notification就不会带来这些麻烦事,用户完全可以打完游戏再去看这条短信。所以在开发中应根据实际需求,选择合适的控件。

举一个简单的Demo, 教大家如何使用Notification,大致分以下几个步骤: 

第一步:新建一个Android工程命名为NotificationDemo. 

第二步:修改main.xml代码如下:

[java]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     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>  

第三步:修改NotificationDemo.java代码如下:

[java]  view plain copy
  1. package com.tutor.notification;  
  2. import android.app.Activity;  
  3. import android.app.Notification;  
  4. import android.app.NotificationManager;  
  5. import android.app.PendingIntent;  
  6. import android.content.Context;  
  7. import android.content.Intent;  
  8. import android.os.Bundle;  
  9. 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(this, "我的Notification", "后台计数服务已启动~", 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. }  

第四步:运行Android工程,效果如下图所示:

 

 


 

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android通知栏是一种用于显示应用程序通知的用户界面元素。它可以在屏幕的顶部或底部显示,并且可以包含文本、图像、声音和其他交互元素。通知栏可以帮助用户及时了解应用程序的状态和事件,例如新消息、更新、提醒和警告等。开发人员可以使用Android SDK提供的通知API来创建和管理通知栏,以便更好地与用户进行交互。 ### 回答2: Android 通知栏是一种提供给用户显示有关当前状态和行动的信息的方式,以便用户可以及时地采取必要的行动。通知栏可以显示来自应用程序和系统的通知消息,例如电子邮件、信息和其他事件,可以让用户在不离开当前应用的情况下对这些消息进行响应。 在通知栏中,每个通知都包含一个图标、标题、简短的消息文本和通知时间。用户可以从通知栏中直接打开应用程序或查看通知的详细信息。通知栏还可以显示多个通知,按照时间顺序进行排序。 开发人员可以使用 Android SDK 提供的 Notification 类来创建自定义通知。可以设置通知的图标、文本、声音、震动和延迟时间等属性。还可以指定通知的优先级,以便系统在有限的屏幕空间中为用户先显示最重要的通知。 通知还可以与 PendingIntent 实例相关联,以便在用户单击通知时执行特定的操作,例如打开应用程序,启动活动或显示通知详细信息的专用活动。 总之,Android 通知栏是一种非常有用的功能,可以让用户及时了解应用程序和系统中的重要事件,并采取及时的行动。开发人员可以使用通知栏来实现更好的用户体验。 ### 回答3: Android 通知栏是一种非常有用的功能,它可以让你的应用程序以一种全新的方式与用户进行交互。在 Android 应用程序中,通知栏是一种特殊的 UI 元素,它显示在屏幕的顶部,并显示当前状态、事件或提示。通知栏通常包含一组小图标,可以展开或折叠以显示更多详细信息。 Android 通知栏有许多不同的用途,例如提醒用户新的消息、电子邮件、电话、提醒等等。发送通知的应用程序无需与用户保持连接,这使得通知栏非常适合后台服务或其他形式的低功耗通信。通知栏还允许用户直接从通知菜单中操作应用程序。例如,当用户收到新的电子邮件时,他们可以在通知栏中选择该电子邮件并立即查看其内容,而无需打开电子邮件应用程序。 Android 通知栏的另一个优点是它的可定制性。可以轻松地修改通知的外观、行为和内容,以满足不同应用程序的需求和设计要求。您可以为通知添加各种元素,如纯文本、小图标、大图标、进度指示器、按钮等等。这样,您可以轻松地创造与您的品牌和应用程序设计语言保持一致的通知。 在实现通知栏之前,您需要确保该应用程序已获得了通知权限。如果您的应用程序需要通知用户任何内容,则必须获得 Android 手机上的通知权限。可以在应用程序设置中找到此选项。 虽然 Android 通知栏很有用,但在某些情况下,它们可能会变得令人分心。因此,应该仔细考虑应用程序通知的数量和类型,以确保用户不会感到困扰。通知栏还可以消耗设备电池,因此也应考虑优化应用程序以最小化资源消耗。 Android 通知栏作为 Android 应用程序非常重要的一部分,可以帮助您在应用程序和用户之间建立更紧密的联系,并提供有关应用程序状态、事件和提示的有用信息。通过努力优化您的应用程序通知,您可以确保用户感到受到了关注,并且同时不会让他们感到困扰。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值