今天来接触一下android里的通知:

  • Notification
  • NotificationManager


里面涉及到两个activity,所以又两个layout文件,一个是主程序的,一个是点击通知栏图标之后弹出的activity,直接上代码:

1. res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="点击按钮,发送通知"/>    <Button         android:id="@+id/btn1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Button1"/>    </LinearLayout>

2. res/layout/activity_notification.xml :点击通知跳转页面

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="通知消息界面"        android:textSize="30sp" /></LinearLayout>

3. src/MainActivity.java

package com.example.demoui5_notification;import android.os.Bundle;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {private Context ctx = this;private Button mBtn1;private NotificationManager notificationManager;private Notification notification;private PendingIntent pendingIntent;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);Intent intent = new Intent(MainActivity.this, NotificationActivity.class);pendingIntent = PendingIntent.getActivity(ctx, 0, intent, 0);notification = new Notification();mBtn1 = (Button) findViewById(R.id.btn1);mBtn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {notification.icon = R.drawable.ic_launcher;notification.tickerText = "Button1的通知消息";notification.defaults = Notification.DEFAULT_SOUND;notification.setLatestEventInfo(ctx, "Button1", "Button1通知", pendingIntent);notificationManager.notify(0, notification);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

4. src/ NotificationActivity.java

package com.example.demoui5_notification;import android.app.Activity;import android.os.Bundle;public class NotificationActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_notification);}}

这个实例很简单,就是点击Button1按钮,然后会在屏幕上方有一个通知,点击通知之后跳转到宁外一个页面。

关键使用到的组件是:NotificationManager 和 Notification, PendingIntent是对Intent的扩展。我们来看一看用法:

notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);Intent intent = new Intent(MainActivity.this, NotificationActivity.class);pendingIntent = PendingIntent.getActivity(ctx, 0, intent, 0);notification = new Notification();mBtn1 = (Button) findViewById(R.id.btn1);mBtn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {notification.icon = R.drawable.ic_launcher;notification.tickerText = "Button1的通知消息";notification.defaults = Notification.DEFAULT_SOUND;notification.setLatestEventInfo(ctx, "Button1", "Button1通知", pendingIntent);notificationManager.notify(0, notification);}});
先通过 getSystemService(NOTIFICATION_SERVICE)得到通知管理者,由于点击通知发送的intent与直接在activity里发送intent是不一样的,所以这里用到了PendingIntent,构造方式如上。 然后就是构造通知对象(Notification),可以设置icon,标题栏显示的文字,声音,以及下拉标题栏时显示的通知样式,还需要将pendingIntent与其绑定。

最后就是manager来notify一个Notification,好了,完成。








更多相关文章

  1. Android(安卓)多次点击的另一种思路
  2. Android(安卓)应用软件开发(四)菜单控件
  3. Android(安卓)代码审计工具和常见问题
  4. View点击涟漪效果
  5. Android(安卓)通知Notification
  6. ListView的item点击失效解决
  7. Android(安卓)使用Socket实现服务器与手机客户端的长连接一:一对
  8. Android设置中清除应用数据源码分析
  9. Android(安卓)8.1.0 SystemUI 修改之 - 系统锁屏状态下点击用户

随机推荐

  1. Android中配置单元测试
  2. Android 实现自动接听和挂断电话功能
  3. #Android 获取(keystore)Maps API Key
  4. 类似搜索的布局
  5. 重写对话框
  6. Android ListView 几个重要属性
  7. Android 控制闪光灯
  8. android 之PopupWindow的使用
  9. Android 改变标题栏的背景色
  10. [置顶] Android 百度地图 简单实现--- 美