本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/
到目前为止,想必大家已经都熟悉使用Toast去给用户显示信息了。尽管使用Toast很方便,但是Toast显示的通知并不是永久存储的。它只在屏幕上显示一小段时间,然后就消失了。如果它包含一些特别重要的信息,如果用户没有观察屏幕,那么用户就很容易错过它。
对于那些重要的信息,应该采用一种更加持久保存的方法。在这种情况下,应该使用NotificationMnanger(消息管理器)去显示一个长久的信息,这个消息被显示在了StatusBar(状态栏)上面,使用用户能够很容易地看见。
接下来展示如何发送一个Notification通知。
1. 创建一个工程:Notifications。
2. 在包中新建一个名为NotificationView的类,同时在res/layout文件夹下面新建一个名为notification.xml 文件,它将作为NotificationView的视图。
3. notification.xml中的文件。
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Herearethedetailsforthenotification..."/>
- </LinearLayout>
4.NotificationView.java中的代码。
- publicclassNotificationViewextendsActivity{
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.notification);
- NotificationManagernm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
- nm.cancel(getIntent().getExtras().getInt("notificationID"));
- }
- }
5. AndroidManifest.xml中的代码。
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="net.learn2develop.Notifications"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdkandroid:minSdkVersion="14"/>
- <uses-permissionandroid:name="android.permission.VIBRATE"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <activity
- android:label="@string/app_name"
- android:name=".NotificationsActivity">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <activityandroid:name=".NotificationView"
- android:label="Detailsofnotification">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.DEFAULT"/>
- </intent-filter>
- </activity>
- </application>
- </manifest>
6. main.xml中的代码。
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical">
- <Button
- android:id="@+id/btn_displaynotif"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="DisplayNotification"
- android:onClick="onClick"/>
- </LinearLayout>
7. 最后,NotificationActivity.java中的代码。
- publicclassNotificationsActivityextendsActivity{
- intnotificationID=1;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- publicvoidonClick(Viewview){
- displayNotification();
- }
- protectedvoiddisplayNotification()
- {
- Intenti=newIntent(this,NotificationView.class);
- i.putExtra("notificationID",notificationID);
- PendingIntentpendingIntent=
- PendingIntent.getActivity(this,0,i,0);
- NotificationManagernm=(NotificationManager)
- getSystemService(NOTIFICATION_SERVICE);
- Notificationnotif=newNotification(
- R.drawable.ic_launcher,
- "Reminder:Meetingstartsin5minutes",
- System.currentTimeMillis());
- CharSequencefrom="SystemAlarm";
- CharSequencemessage="Meetingwithcustomerat3pm...";
- notif.setLatestEventInfo(this,from,message,pendingIntent);
- notif.vibrate=newlong[]{100,250,100,500};
- nm.notify(notificationID,notif);
- }
- }
8. 调试。
9. 点击Display Notification按钮,在状态栏上面就会出现一个notification通知。如图:
10.将状态栏拉下来,就会显示这个Notification通知的详尽信息。如图:
11. 点击这个Notification通知,就会显示NotificationView的界面,同时,状态栏上面的通知也消失了。如图:
分享到:
相关推荐
Android实现Notification的通知栏常驻.zip
修改android 2.3版本Notification通知栏不显示的Bug Android 服务端下载 Notification通知栏 断点下载
Android 通知(notification)简单实用Demo,包含点击功能简单例子,供大家下载学习
本文实例讲述了Android开发之Notification通知用法。分享给大家供大家参考,具体如下: 根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把...
这几天做一个小软件在API28(Android 9.0)的模拟器上测试时,发现通知栏无效,经过一番查询,了解到:API26(Android 8.0)以后,引入了**通知渠道(Notification Channels)**这么一个东西来帮助用户管理通知。...
Android中使用Notification在通知栏中显示通知示例代码.rar Android中使用Notification在通知栏中显示通知示例代码.rar Android中使用Notification在通知栏中显示通知示例代码.rar
NULL 博文链接:https://Adam289.iteye.com/blog/1879852
使用android push notification service 实现即时通知
这个是android notification框架,如有需要请下载。发发发
可以设置一条通知,当然可以更新一条通知,我们通过在调用NotificationManager.notify(ID, notification)时所使用的ID来更新它。为了更新你之前发布的通知,你需要更新或者创建一个NotificationCompat.Builder对象,...
本实例描述的Android开发中的Notification通知控件的应用,包括通知的创建、属性设置、跳转方法以及删除等。希望能给学习Notification通知的朋友带来帮助。
安卓Android源码——notification1.rar
Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商...
Android Notification通知 简单使用 demo下载。 解决问题:兼容高低版本,帮助用户打开通知开关,android5.x手机状态栏icon是白块问题。 详细文章请参考 ...
android消息通知栏Notification
主要利用了notification service 和receiver 实现了用户通知栏更新,失败了点击重新下载,下载好了点击自动安装,布局很丑,请根据自己项目的实际需求自行修改
Anroid,一个简单的带按钮自定义通知栏,欢迎下载试用,人人为我,我为人人,共同学习,共同进步
notification是一种出现在任务栏的提示,特别是在4.0以后notification改进了不少,本文内容都是基于4.0及4.1以后总结来的,详细介绍各种布局的Notification样式,实现音乐播放器、邮件通知等复杂的例子详细代码。
实现三种通知状态栏的方式