文档章节

Android 状态栏通知Notification

j
 james_laughing
发布于 2014/12/16 11:05
字数 456
阅读 137
收藏 5

3 月,跳不动了?>>>

Notification可以在屏幕最顶部的状态栏上显示一个图标通知,通知的同时可以播放声音,以及振动提示用户,点击通知还可以返回指定的Activity.
  今天例子的效果图:

布局main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button android:id="@+id/bt1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="Notification测试"
/>
<Button android:id="@+id/bt2"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="清除Notification"
/>
</LinearLayout>

java代码:
package com.pocketdigi.Notification;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class main extends Activity {
/** Called when the activity is first created. */
int notification_id=19172439;
NotificationManager nm;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Button bt1=(Button)findViewById(R.id.bt1);
bt1.setOnClickListener(bt1lis);
Button bt2=(Button)findViewById(R.id.bt2);
bt2.setOnClickListener(bt2lis);

}
OnClickListener bt1lis=new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showNotification(R.drawable.home,"图标边的文字","标题","内容");
}

};
OnClickListener bt2lis=new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//showNotification(R.drawable.home,"图标边的文字","标题","内容");
nm.cancel(notification_id);
}

};
public void showNotification(int icon,String tickertext,String title,String content){
//设置一个唯一的ID,随便设置

//Notification管理器
Notification notification=new Notification(icon,tickertext,System.currentTimeMillis());
//后面的参数分别是显示在顶部通知栏的小图标,小图标旁的文字(短暂显示,自动消失)系统当前时间(不明白这个有什么用)
notification.defaults=Notification.DEFAULT_ALL; 
//这是设置通知是否同时播放声音或振动,声音为Notification.DEFAULT_SOUND
//振动为Notification.DEFAULT_VIBRATE;
//Light为Notification.DEFAULT_LIGHTS,在我的Milestone上好像没什么反应
//全部为Notification.DEFAULT_ALL
//如果是振动或者全部,必须在AndroidManifest.xml加入振动权限
PendingIntent pt=PendingIntent.getActivity(this, 0, new Intent(this,main.class), 0);
//点击通知后的动作,这里是转回main 这个Acticity
notification.setLatestEventInfo(this,title,content,pt);
nm.notify(notification_id, notification);

}
}

AndroidManifest.xml加入权限:
<uses-permission android:name="android.permission.VIBRATE" /> 
<!-- 允许振动 --> 

本文转载自:http://android.tgbus.com/Android/tutorial/201105/353662.shtml

j
粉丝 30
博文 455
码字总数 22188
作品 0
广州
私信 提问
加载中

评论(2)

j
james_laughing 博主

引用来自“fxgatoschina”的评论

shit
fxgatoschina
fxgatoschina
shit
第88章、系统服务之NOTIFICATION_SERVICE服务(从零开始学Android)

Notification通知将一个图标(包含一条可选的提示文本信息)填加到系统的状态栏(一般来说,Android手机的状态栏是在顶部,非底部,要注意噢)中,并将一条展开信息添加到通知窗口中。当用户...

simpower
2014/09/01
962
0
[Android] Status Bar Notifications

前言   本章内容为Android开发者指南的 Framework Topics/User Interface/Notifications/Status Bar Notifications章节,译为"状态栏通知",版本为Android 4.0 r1,翻译来自:"呆呆大虾",......

亭子happy
2012/09/27
500
0
Android 用户界面---状态栏通知(二)

响应通知 围绕通知如何跟应用程序的UI流进行交互是用户体验的核心部分。你必须正确的实现以便在应用程序中提供一直的用户体验。 由日历应用提供的两种典型的通知的例子,一个是能够对即将发生...

长平狐
2012/10/16
482
0
Android8.1 SystemUI源码分析之 Notification流程

代码流程 1、先看UI显示,StatuBar加载 CollapsedStatusBarFragment 替换 statusbarcontainer(状态栏通知显示区域) SystemUIsrccomandroidsystemuistatusbarphoneStatusBar.java 这就是我们看......

cczheng
2019/05/31
0
0
Android 用户界面---通知(Notifications)概要

有几种类型的场景可能会要求你把应用程序中发生的事件通知给用户。有些事件需要用户响应,而有些则不需要。例如: 1. 当像文件保存完成的一个事件发生时,就应该显示一个短消息,提示用户保存...

长平狐
2012/10/16
100
0

没有更多内容

加载失败,请刷新页面

加载更多

kettle 连接 mysql8

kettle默认使用的是org.gjt.mm.mysql.Driver,而mysql 8.0以上connector已经不再支持这个包名; 即使将mysql-connector-java-8.0.xx.jar包拷贝到data-integration/lib目录下,还是报错找不到驱...

jxlgzwh
4分钟前
8
0
五分钟学后端技术:如何学习Java工程师必须要会的RPC

声明 本文转自https://developer.51cto.com/art/201906/597963.htm 什么是RPC RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层...

黄小斜
6分钟前
5
0
ASP.NET Core笔记(3) - 配置

配置规则 命令行配置提供程序 环境变量配置提供程序 文件配置提供程序 配置的读取 自定义配置数据源 ASP.NET Core中的配置项可以通过命令行、环境变量、json/xml/ini配置文件来提供。 Web应用...

zhixin9001
11分钟前
4
0
2D游戏作业:贪吃蛇

1.游戏介绍 这款游戏通过上下左右键来引导贪吃蛇吃到食物从而贪吃蛇越变越长,当贪吃蛇碰到窗口的四壁是贪吃蛇撞死从而游戏结束。 2. 开发工具 Visual Studio Code 3.部分代码介绍 导入模块 ...

侯雅丽
12分钟前
14
0
Scala的for

在for循环中 使用<-作为生成器 使用if作为过滤器 可以使用yield关键字将结果以集合的方式返回 val arr = Array((1,2,2), (2,3,4), (3,4,2), (4,1,3)) val result = for(t <- arr i...

dreamness
16分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部