Notification通知將一個圖標(包含一條可選的提示文本信息)填加到系統的狀態欄(通常來講,Android手機的狀態欄是在頂部,非底部,要注意噢)中,並將一條展開信息添加到通知窗口中。當用戶選中展開信息時,Android將執行一個此通知已定義的意圖Intent(一般用於彈出一個Activity)。你還能夠對通知進行配置,用設備提供的聲音、振動、閃光來提醒用戶。html
當後臺服務(Service)須要對某個事件發出提醒而且須要用戶響應時,狀態欄通知就能發揮做用了。後臺服務歷來不會啓動Activity來接收用戶的交互,取而代之的是應該建立一個狀態欄通知,在用戶點選後再由通知來啓動Activity。java
Activity或者Service都能初始化一個狀態欄通知。可由於Activity只有在活動狀態並得到焦點時才能執行操做,因此在實際開發中使用Service來建立狀態欄通知居多。這樣,即便用戶正在使用其餘程序或者設備已經休眠時,仍然能夠從後臺建立通知。要建立一個通知,須用到兩個類:Notification類和NotificationManager類。android
NotificationManager是一個Android系統服務,用於管理和運行全部通知。NotificationManager不能被實例化,爲了把Notification傳給它,你能夠用getSystemService()方法獲取一個NotificationManager的引用。在須要通知用戶時再調用notify()方法將Notification對象傳給它。編程
建立Notivication通知步驟:app
(1)獲取NotificationManager的引用ide
[java] view plaincopy佈局
NotificationManager notificationManager=(NotificationManager) ui
super.getSystemService(Context.NOTIFICATION_SERVICE); this
(2)實例化Notificationspa
[java] view plaincopy
Notification notification=new Notification(
R.drawable.ic_launcher,
"Notification消息提示!",
System.currentTimeMillis());
(3)指定通知的展開信息和Intent
[java] view plaincopy
PendingIntent intent=PendingIntent.getActivity(
this,
0,
super.getIntent(),
PendingIntent.FLAG_UPDATE_CURRENT);
tification.setLatestEventInfo(
this,
"跟我學Android",
"跟我學編程:www.genwoxue.com",
intent);
(4)將Notification對象傳給NotificationManager
[java] view plaincopy
notificationManager.notify(
"Genwoxue",
R.drawable.ic_launcher,
notification);
若是想要發送狀態欄通知,經過notify(int, Notification)傳遞Notification對象給NotificationManager便可。第一個參數是Notification 的惟一ID,第二個參數是Notification對象。ID在整個應用程序範圍內惟一標識Notification。應用程序可能管理着多種不一樣的通知,在用戶經過各自定義的Intent返回應用程序時必須能選擇正確的動做執行之,所以上述參數是必需的。
1、設計界面
一、佈局文件
打開res/layout/activity_main.xml文件。
輸入如下代碼:
[html] view plaincopy
<?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:id="@+id/notifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification通知將一個圖標(包含一條可選的提示文本信息)填加到系統的狀態欄(通常來講,Android手機的狀態欄是在頂部,非底部,要注意噢)中,並將一條展開信息添加到通知窗口中。當用戶選中展開信息時,Android將執行一個此通知已定義的意圖Intent(一般用於彈出一個Activity)。你還能夠對通知進行配置,用設備提供的聲音、振動、閃光來提醒用戶。
" />
</LinearLayout>
2、程序文件
打開「src/com.genwoxue.notification/MainActivity.java」文件。
而後輸入如下代碼:
[java] view plaincopy
package com.genwoxue.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;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NotificationManager notificationManager=(NotificationManager)super.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification=new Notification(
R.drawable.ic_launcher,
"Notification消息提示!",
System.currentTimeMillis());
PendingIntent intent=PendingIntent.getActivity(
this,
0,
super.getIntent(),
PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(
this,
"跟我學Android",
"跟我學編程:www.genwoxue.com",
intent);
notificationManager.notify(
"Genwoxue",
R.drawable.ic_launcher,
notification);
}
}
3、配置文件
沒有特殊權限要求,使用默認「AndroidManifest.xml」配置文件便可。
4、運行結果
參考文章: