Android开发手记(23) Notification
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android开发手记(23) Notification,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3044字,纯文字阅读大概需要5分钟。
内容图文
![Android开发手记(23) Notification](/upload/InfoBanner/zyjiaocheng/1246/859aca36831d45c2a6d2ad1152fb6b41.jpg)
有时候,我们需要应用程序在状态内显示一些通知信息,这时我们就需要使用Notification来完成这一工作。也许我们会想到以前经常使用的Toast来通知用户。虽然Notification与Toast都可以起到通知、提醒的作用,其实这两者还是有很大不同的。在android中,Notification是通过NotificationManager进行统一管理的,而Toast使用Toast.makeToast即可显示。另外,Notification可以长久的显示在系统的状态栏内,但是Toast只能暂时显示一段时间。
现在我们开始讨论创建Notification的一般步骤。
首先,我们需要通过getSystemService方法获得一个NotificationManager对象。
NotificationManager nfManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
然后,要想显示一个Notification,我们还需一个PendingIntent,由于PendingIntent由android系统负责维护,可以防止在应用程序关闭的时候系统自动销毁Notification对象。
PendingIntent intent = PendingIntent.getActivity(MainActivity.this, 0, getIntent(), 0);
然后,通过Notification.Builder创建一个Notification对象。
Notification notification = new Notification.Builder(MainActivity.this) .setSmallIcon(android.R.drawable.ic_dialog_email) // 设置Icon .setTicker("你有一封新邮件") // 设置接收时滚动通知 .setContentTitle("邮件主题:这是第" + notiID + "封邮件")// 设置Title .setContentText("邮件内容:")// 设置Message .setContentIntent(intent) // 设置用于显示的Intent .setNumber(notiID) // 设置右下角Number .getNotification(); //API 11可以使用getNotificatin() // API 16及之后使用 build() notification.flags = Notification.FLAG_AUTO_CANCEL; // 点击自动消失
最后,通过NotificationManager来显示Notification即可。
nfManager.notify(notiID++, notification); // notiID定义了通知的编号,notification为通知的内容
如果想销毁显示的Notification可以使用NotificationManager提供的方法。
nfManager.cancel(notiID); // 销毁编号为notiID的通知 nfManager.cancelAll(); // 销毁所有通知
完整代码如下:
import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private NotificationManager nfManager; private Button btnNoti; private Button btnClear; private int notiID; @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); notiID = 1; nfManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); btnNoti = (Button)findViewById(R.id.brnNoti); btnNoti.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { PendingIntent intent = PendingIntent.getActivity(MainActivity.this, 0, getIntent(), 0); Notification notification = new Notification.Builder(MainActivity.this) .setSmallIcon(android.R.drawable.ic_dialog_email) // 设置Icon .setTicker("你有一封新邮件") // 设置接收时滚动通知 .setContentTitle("邮件主题:这是第" + notiID + "封邮件")// 设置Title .setContentText("邮件内容:")// 设置Message .setContentIntent(intent) // 设置用于显示的Intent .setNumber(notiID) // 设置右下角Number .getNotification(); //API 11可以使用getNotificatin() // API 16及之后使用 build() notification.flags = Notification.FLAG_AUTO_CANCEL; // 点击自动消失 nfManager.notify(notiID++, notification); } }); btnClear = (Button)findViewById(R.id.btnClear); btnClear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { nfManager.cancel(notiID --); // nfManager.cancelAll(); } }); } }
原文:http://www.cnblogs.com/doodle777/p/4943008.html
内容总结
以上是互联网集市为您收集整理的Android开发手记(23) Notification全部内容,希望文章能够帮你解决Android开发手记(23) Notification所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。