Android Notificationの紹介
Notificationは、デスクトップのステータス通知バーです.これは主に3つの主要なクラスに関連しています.
Notification:通知の各属性を設定します.
NotificationManager:通知の送信とキャンセルを担当します
Notification.Builder:Notification内など、Notificationオブジェクトを作成します.すべてのflagsを制御しながら、Notificationのスタイルを構築するのに非常に便利です.
主な役割:
1.ステータスバーアイコンを作成します.
2.拡張されたステータスバーウィンドウに追加の情報を表示します(およびIntentを起動します).
3.フラッシュまたはLED.
4.電話が震える.
5.聞こえる警告音(ベル、保存された音声ファイル)を発する.
Notificationは、見えないプログラムコンポーネント(Broadcast Receiver、Service、アクティブでないActivity)が、ユーザーに注意すべきイベントが発生したことを警告する最良の方法です.
次に、この3つのクラスについて説明します.
一、NotificationManager
このクラスはこの3つのクラスの中で最も簡単です.主にNotificationのステータス表示とキャンセルを担当します.主に5つの関数を含む:voidcancel(int id)、void cancel(String tag,int id)、void cancelAll()、void notify(int id,Notification)、notify(String tag,int id,Notification)
この5つの関数を見てみると、このクラスの役割がわかります.ただし、オブジェクトを初期化するときは、次のことに注意してください.
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
二、Notification
このクラスを設定するには、主にNotificationの関連プロパティを設定します.初期化
Notification n = new Notification();
Notificationの中にはたくさんの属性があります.次はいくつかのよく使われるものを選んで紹介します.
iconこれは通知を設定するアイコンです.QQのペンギンのようです
soundこれは通知に設定したときのヒント音です.
tickerTextプロンプトのテキストを設定します.
vibrateが通知すると振動します.
whenが通知する時間を設定
flagこれは興味深いことにステータスバーに通知を表示する方法を設定します.この値はエビに設定できます.
FLAG_NO_CLEARがflagをこの属性に設定すると、通知バーのクリアボタンは表示されません.
FLAG_ONGOING_EVENTがflagをこの属性に設定すると、通知はQQのようにステータスバーに表示されます.
DEFAULT_ALLはすべての属性をデフォルトに設定
DEFAULT_SOUNDプロンプト音をデフォルトに設定
DEFAULT_VIBRATE振動をデフォルトに設定
三、Notification.Builder
このクラスは一般的にNotificationを管理し、Notificationのいくつかの属性を動的に設定するために使用されます.setで設定します.何も言うことはありません.
例を見てください.この例ではxmlに2つのボタンを追加する必要があります.
Notification:通知の各属性を設定します.
NotificationManager:通知の送信とキャンセルを担当します
Notification.Builder:Notification内など、Notificationオブジェクトを作成します.すべてのflagsを制御しながら、Notificationのスタイルを構築するのに非常に便利です.
主な役割:
1.ステータスバーアイコンを作成します.
2.拡張されたステータスバーウィンドウに追加の情報を表示します(およびIntentを起動します).
3.フラッシュまたはLED.
4.電話が震える.
5.聞こえる警告音(ベル、保存された音声ファイル)を発する.
Notificationは、見えないプログラムコンポーネント(Broadcast Receiver、Service、アクティブでないActivity)が、ユーザーに注意すべきイベントが発生したことを警告する最良の方法です.
次に、この3つのクラスについて説明します.
一、NotificationManager
このクラスはこの3つのクラスの中で最も簡単です.主にNotificationのステータス表示とキャンセルを担当します.主に5つの関数を含む:voidcancel(int id)、void cancel(String tag,int id)、void cancelAll()、void notify(int id,Notification)、notify(String tag,int id,Notification)
この5つの関数を見てみると、このクラスの役割がわかります.ただし、オブジェクトを初期化するときは、次のことに注意してください.
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
二、Notification
このクラスを設定するには、主にNotificationの関連プロパティを設定します.初期化
Notification n = new Notification();
Notificationの中にはたくさんの属性があります.次はいくつかのよく使われるものを選んで紹介します.
iconこれは通知を設定するアイコンです.QQのペンギンのようです
soundこれは通知に設定したときのヒント音です.
tickerTextプロンプトのテキストを設定します.
vibrateが通知すると振動します.
whenが通知する時間を設定
flagこれは興味深いことにステータスバーに通知を表示する方法を設定します.この値はエビに設定できます.
FLAG_NO_CLEARがflagをこの属性に設定すると、通知バーのクリアボタンは表示されません.
FLAG_ONGOING_EVENTがflagをこの属性に設定すると、通知はQQのようにステータスバーに表示されます.
DEFAULT_ALLはすべての属性をデフォルトに設定
DEFAULT_SOUNDプロンプト音をデフォルトに設定
DEFAULT_VIBRATE振動をデフォルトに設定
三、Notification.Builder
このクラスは一般的にNotificationを管理し、Notificationのいくつかの属性を動的に設定するために使用されます.setで設定します.何も言うことはありません.
例を見てください.この例ではxmlに2つのボタンを追加する必要があります.
public class Main extends Activity {
private Button sendBtn , cancelBtn;
private Notification n;
private NotificationManager nm;
//Notification ID
private static final int ID = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//
sendBtn = (Button)this.findViewById(R.id.sendBtn);
cancelBtn = (Button)this.findViewById(R.id.cancelBtn);
// NotificationManager
String service = NOTIFICATION_SERVICE;
nm = (NotificationManager)this.getSystemService(service);
// Notification
n = new Notification();
// ,
int icon = R.drawable.icon;
// ,
String tickerText = "Test Notifaction";
//
long when = System.currentTimeMillis();
n.icon = icon;
n.tickerText = tickerText;
n.when = when;
n.flags = Notification.FLAG_NO_CLEAR;
n.flags = Notification.FLAG_ONGOING_EVENT;
//
sendBtn.setOnClickListener(sendClickListener);
cancelBtn.setOnClickListener(cancelClickListener);
}
private OnClickListener sendClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
// Intent
Intent intent = new Intent(Main.this, Main.class);
// PendingIntent
PendingIntent pi = PendingIntent.getActivity(Main.this, 0, intent, 0);
//
n.setLatestEventInfo(Main.this, "My Title", "My Content", pi);
//
nm.notify(ID, n);
}
};
private OnClickListener cancelClickListener = new OnClickListener(){
@Override
public void onClick(View v) {
nm.cancel(ID);
}
};
}