码迷,mamicode.com
首页 > 移动开发 > 详细

Android-Notification (通知实现)

时间:2015-08-26 12:14:45      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:notification   notificationmanager   安卓通知栏   

1.回顾

  上篇学习了 Dialog实现的 6中方式 :普通对话框,列表对话框,单选对话框,多选对话框,自定义对话框和 activity 实现 对话框;

2.重点

   (1)Notification 实现 通知

   (2)Notification 的权限

   (3)NotificationManager 实现操作通知

3.基本实现

   3.1效果图

      手机 小米4 ,是有声音和震动的,这里没办法展示;
                                                               技术分享

   3.2 布局实现

       两个按钮:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="16dp"
        android:text="发送通知" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/button1"
        android:text="取消通知" />

</RelativeLayout>


     3.3 代码实现

package com.example.studydemo7;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.Notification.Builder;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button button1,button2;
	
	
	//通知 是通过 NotificationManager 来管理的
	private NotificationManager manager;
	
	private final int NOTIFICATION_ID=1;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//初始化 得到 通知 系统服务
		manager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		
		button1=(Button) findViewById(R.id.button1);
		button2=(Button) findViewById(R.id.button2);
		button1.setOnClickListener(new button1ClickListener());
		button2.setOnClickListener(new button2ClickListener());
		
	}
	
	class button1ClickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			//发送通知
			sendNotification();
		}
		
	}
	class button2ClickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			//取消通知
			manager.cancel(NOTIFICATION_ID);
		}
		
	}
	
	@SuppressLint("NewApi")
	private void sendNotification(){
		
		//通过 Builder 来创建  Notification 的
		Builder builder=new Notification.Builder(this);
		//设置 通知 图标
		builder.setSmallIcon(R.drawable.ic_launcher);
		//设置 通知 显示标题
		builder.setTicker("Hi");
		//设置 通知栏 标题
		builder.setContentTitle("StudyDemo");
		//设置 通知内容
		builder.setContentText("StudyDemo 需要更新了!");
		//设置 提醒 声音/震动/指示灯
		builder.setDefaults(Notification.DEFAULT_ALL);
		
		//设置 点击后的跳转 通过 pendingIntent 实现
		Intent intent=new Intent(this,MainActivity.class);
		PendingIntent pendingIntent=PendingIntent.getActivity(this,0, intent,0);
		builder.setContentIntent(pendingIntent);
		
		//创建 通知 
		//安卓4.1 及其 以上使用 build()方法 ,以下的使用  builder.getNotification();
		Notification notification=builder.build();
		manager.notify(NOTIFICATION_ID, notification);
	}
	
	
	
	
	
}


4.demo 免积分下载

http://download.csdn.net/detail/lablenet/9048745



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android-Notification (通知实现)

标签:notification   notificationmanager   安卓通知栏   

原文地址:http://blog.csdn.net/lablenet/article/details/47999961

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!