Android-Notification (通知实现)

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



©️2020 CSDN 皮肤主题: 点我我会动 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值