注意:运行完程序,需要在手机上将此软件的通知栏权限打开

5efa5699bf30cbca902540458f8e8155.png

权限:

控制消息发送的界面

c08bd5d0bb98d06a8620f94bf9c3896a.png

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainActivity">

android:layout_width="209dp"

android:layout_height="84dp"

android:textSize="20dp"

android:onClick="send"

android:text="发送Notification" />

android:layout_width="208dp"

android:layout_height="84dp"

android:textSize="20dp"

android:onClick="del"

android:text="删除Notification" />

点击通知消息跳转的界面

152af01170ef48dad329d9f68d80285f.png

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

tools:context=".OtherActivity">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textSize="40dp"

android:text="恭喜您中了一等奖!"/>

package com.example.test18;

import android.app.Activity;

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

public class MainActivity extends Activity {

static final int NOTIFICATION_ID = 0x123;

NotificationManager nm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取系统的Notificationmanager服务

nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

}

//为发送通知的按钮的点击事件定义事件处理方法

public void send(View source){

//创建启动其他Activity的Intent

Intent intent = new Intent(MainActivity.this,OtherActivity.class);

PendingIntent pi = PendingIntent.getActivity(

MainActivity.this, 0, intent, 0);

Notification notify = new Notification.Builder(this)

// 设置打开该通知,该通知自动消失

.setAutoCancel(true)

// 设置显示在状态栏的通知提示信息

.setTicker("有新的消息")

// 设置通知的图标

.setSmallIcon(R.drawable.ic_launcher_background)

// 设置通知内容的标题

.setContentTitle("一条新通知")

// 设置通知内容

.setContentText("恭喜您,您中奖了!")

// 设置使用系统默认的声音、默认LED灯

.setDefaults(Notification.DEFAULT_SOUND |Notification.DEFAULT_LIGHTS)

// 设置通知的自定义声音

// .setSound(Uri.parse("android.resource://org.crazyit.ui/"

// + R.raw.msg))

.setWhen(System.currentTimeMillis())

// 设该通知将要启动程序的Intent

.setContentIntent(pi) // ①

.build();

// 发送通知

nm.notify(NOTIFICATION_ID, notify);

}

// 为删除通知的按钮的点击事件定义事件处理方法

public void del(View v)

{

// 取消通知

nm.cancel(NOTIFICATION_ID);

}

}

package com.example.test18;

import android.app.Activity;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

public class OtherActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_other);

}

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐