Android中关于Notification及NotificationManger的详解

楚暮潇潇

楚暮潇潇

2016-02-19 10:09

下面是个简单易学的Android中关于Notification及NotificationManger的详解教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

Android状态栏提醒

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

步骤:

一、添加布局对象
代码如下:

Button
android:id="@+id/showButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="showNotification" /

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

Button
android:id="@+id/cancelButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="cancelNotification" /

二、修改MianActivity继承处Activity并实现接口OnClickListener
代码如下:

public class MainActivity extends Activity implements OnClickListener {
 private Context mContext = this;
 private Button showbtn, calclebtn;
 private Notification noti;
 private NotificationManager notiManger;
 private static int NOTIFICATION_ID = 0x0001;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  setUpViews();
 }

 private void setUpViews() {
  showbtn = (Button) findViewById(R.id.showButton);
  calclebtn = (Button) findViewById(R.id.cancelButton);
  noti = new Notification(R.drawable.ic_launcher, "this is a notification", System.currentTimeMillis());
  noti.defaults = Notification.DEFAULT_SOUND;// 使用默认的提示声音
  noti.defaults |= Notification.DEFAULT_VIBRATE;// 添加震动
  notiManger = (NotificationManager) this.getSystemService(mContext.NOTIFICATION_SERVICE);//获取NofificationManger对象
  showbtn.setOnClickListener(this);//让Activity实现接口OnClickListener可以简单的通过此两行代码添加按钮点击响应事件
  calclebtn.setOnClickListener(this);
 }

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

 // 按钮点击事件响应
 @Override
 public void onClick(View v) {
  if (v == showbtn) {
   Intent intent = new Intent(this.getApplicationContext(),this.getClass());
   // 设置Intent.FLAG_ACTIVITY_NEW_TASK
   intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
   // noti.setLatestEventInfo(context, contentTitle, contentText, contentIntent)设置(上下文,标题,内容,PendingInteng)
   noti.setLatestEventInfo(this, "10086", "你从此以后免除所有话费", contentIntent);
   // 发送通知(消息ID,通知对象)
   notiManger.notify(NOTIFICATION_ID, noti);
  } else if (v == calclebtn) {
   // 取消通知(id)
   notiManger.cancel(NOTIFICATION_ID);
  }
 }
}

展开更多 50%)
分享

猜你喜欢

Android中关于Notification及NotificationManger的详解

编程语言 网络编程
Android中关于Notification及NotificationManger的详解

java中关于内部类的使用详解

编程语言 网络编程
java中关于内部类的使用详解

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

解析Android资源文件及他们的读取方法详解

编程语言 网络编程
解析Android资源文件及他们的读取方法详解

Java中关于int和Integer的区别详解

编程语言 网络编程
Java中关于int和Integer的区别详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

关于Android SDCard存储的问题

编程语言 网络编程
关于Android SDCard存储的问题

Android 初识 Helloworld 详解

编程语言 网络编程
Android 初识 Helloworld 详解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

基于Android SQLiteOpenHelper && CRUD 的使用

基于Android SQLiteOpenHelper && CRUD 的使用

浅谈Android Content Provider的使用

浅谈Android Content Provider的使用
下拉加载更多内容 ↓