Notification(一)

Android基础 专栏收录该内容
136 篇文章 0 订阅

activity_main.xml

<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="com.example.notification.MainActivity" >

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="57dp"
        android:layout_marginTop="51dp"
        android:text="创建一个提示" />

</RelativeLayout>

MainActivity

package com.example.notification;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationCompat.Builder;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

	public static final int NOTIFICATION_ID = 1200;
	private Button button;
	private int count;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) findViewById(R.id.button);
		button.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				count++;
				//import android.support.v4.app.NotificationCompat
				Builder builder = new NotificationCompat.Builder(
						MainActivity.this);
				builder.setSmallIcon(R.drawable.ic_launcher);
				builder.setContentTitle("有" + count + "个未读消息");
				builder.setContentText("你好,我叫wyf");
				//创建即可
				Notification notification = builder.build();
				NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
				//管理器更新通知
				manager.notify(NOTIFICATION_ID, notification);
			}
		});
	}

}

**************************************************添加意图*****************************

布局文件有2个button--发送通知、取消通知

package com.imooc.notificationdemo;

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.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity implements OnClickListener {
	// 通知控制类
	private NotificationManager manager;
	// 通知的id值
	private int notification_ID;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 获取通知的管理类对象
		manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
		//获取控件,添加点击事件
		findViewById(R.id.btn_send).setOnClickListener(this);
		findViewById(R.id.btn_cancle).setOnClickListener(this);

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_send:
			sendNotification();
			break;
		case R.id.btn_cancle:
			manager.cancel(notification_ID);
			break;
		}
	}

	/**
	 * 构造notification并发送到通知栏
	 */
	@SuppressLint("NewApi")
	private void sendNotification() {
		/**
		 * intent英文意思是意图,pending表示即将发生或来临的事情。
		 * PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。
		 */
		Intent intent = new Intent(this, MainActivity.class);
		PendingIntent pintent = PendingIntent.getActivity(this, 0, intent, 0);

		// 创建builder,设置各种参数信息
		Builder builder = new Notification.Builder(this);
		builder.setSmallIcon(R.drawable.ic_launcher);// 设置图标
		builder.setTicker("hello");// 手机状态栏的提示;
		builder.setWhen(System.currentTimeMillis());// 设置时间
		builder.setContentTitle("通知栏通知");// 设置标题
		builder.setContentText("我来自NotificationDemo");// 设置通知内容
		builder.setDefaults(Notification.DEFAULT_SOUND);// 设置提示声音
		builder.setDefaults(Notification.DEFAULT_ALL);// 设置震动

		builder.setContentIntent(pintent);// 点击后的意图
		Notification notification = builder.build();// 4.1以上

		manager.notify(notification_ID, notification);
	}
}


  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

进击的小猿

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值