編輯:關於android開發
下面來談談notification,這個notification一般用在電話,短 信,郵件,鬧鐘鈴聲,在手機的狀態欄上就會出現一個小圖標,提示用戶處理這個通知,這時手從上方滑動狀態欄就可以展開並處理這個快訊。已添加的 Notification.Builder,使其更容易構建通知。notification是一種讓你的應用程序在沒有開啟情況下或在後台運行警示用戶。 它是看不見的程序組件(Broadcast Receiver,Service和不活躍的Activity)警示用戶有需要注意的事件發生的最好途徑。
先來區分以下狀態欄和狀態條的區別:
1、狀態條就是手機屏幕最上方的一個條形狀的區域;
在狀態條有好多信息量:比如usb連接圖標,手機信號圖標,電池電量圖標,時間圖標等等;
2、狀態欄就是手從狀態條滑下來的可以伸縮的view;
在狀態欄中一般有兩類(使用FLAG_標記):
(1)正在進行的程序;
(2)是通知事件;
快速創建一個Notification的步驟簡單可以分為以下四步:
第一步:通過getSystemService()方法得到NotificationManager對象;
1.nManager = (NotificationManager) this.getSystemService(service);
第二步:對Notification的一些屬性進行設置比如:內容,圖標,標題,相應notification的動作進行處理等等;
01.notification.icon = R.drawable.ic_launcher;// 設置通知的圖標
02.notification.tickerText = tickerText; // 顯示在狀態欄中的文字
03.notification.when = when; // 設置來通知時的時間
04.notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定義聲音
05.notification.flags = Notification.FLAG_NO_CLEAR; // 點擊清除按鈕時就會清除消息通知,但是點擊通知欄的通知時不會消失
06.notification.flags = Notification.FLAG_ONGOING_EVENT; // 點擊清除按鈕不會清除消息通知,可以用來表示在正在運行
07.notification.flags |= Notification.FLAG_AUTO_CANCEL; // 點擊清除按鈕或點擊通知後會自動消失
08.notification.flags |= Notification.FLAG_INSISTENT; // 一直進行,比如音樂一直播放,知道用戶響應
09.notification.defaults = Notification.DEFAULT_SOUND; // 調用系統自帶聲音
10.notification.defaults = Notification.DEFAULT_VIBRATE;// 設置默認震動
11.notification.defaults = Notification.DEFAULT_ALL; // 設置鈴聲震動
12.notification.defaults = Notification.DEFAULT_ALL; // 把所有的屬性設置成默認
第三步:通過NotificationManager對象的notify()方法來執行一個notification的消息;
1.nManager.notify(ID, notification);
第四步:通過NotificationManager對象的cancel()方法來取消一個notificatioin的消息;
1.nManager.cancel(ID);
Notification.build構造Notification方法介紹:
void setLatestEventInfo(Context context , CharSequencecontentTitle,CharSequence contentText,PendingIntent contentIntent)
功能: 顯示在拉伸狀態欄中的Notification屬性,點擊後將發送PendingIntent對象
參數: context 上下文環境
contentTitle 狀態欄中的大標題
contentText 狀態欄中的小標題
contentIntent 點擊後將發送PendingIntent對象
說明:要是在Notification中加入圖標,在狀態欄和狀態條中顯示圖標一定要用這個方法,否則報錯!
NotificationManager類的常用方法:
通過獲取系統服務來獲取該對象:
NotificationManager mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) ;
NotificationManager常用方法介紹:
public void cancelAll() 移除所有通知 (只是針對當前Context下的Notification)
public void cancel(int id) 移除標記為id的通知 (只是針對當前Context下的所有Notification)
public void notify(String tag ,int id, Notification notification) 將通知加入狀態欄, 標簽為tag,標記為id
public void notify(int id, Notification notification) 將通知加入狀態欄,,標記為id
01.package com.sun.alex;
02.
03.import android.app.Activity;
04.import android.app.Notification;
05.import android.app.NotificationManager;
06.import android.app.PendingIntent;
07.import android.content.Intent;
08.import android.net.Uri;
09.import android.os.Bundle;
10.import android.view.View;
11.import android.view.View.OnClickListener;
12.import android.widget.Button;
13.
14.public class NotificationActivity extends Activity {
15.
16.private Button sendBtn, cancelBtn;
17.private Notification notification;
18.private NotificationManager nManager;
19.private Intent intent;
20.private PendingIntent pIntent;
21.// Notification的標示ID
22.private static final int ID = 1;
23.
24.@Override
25.public void onCreate(Bundle savedInstanceState) {
26.super.onCreate(savedInstanceState);
27.setContentView(R.layout.main);
28.
29.sendBtn = (Button) this.findViewById(R.id.send);
30.cancelBtn = (Button) this.findViewById(R.id.cancel);
31.
32.String service = NOTIFICATION_SERVICE;
33.nManager = (NotificationManager) this.getSystemService(service);
34.
35.notification = new Notification();
36.String tickerText = "測試Notifaction"; // 通知提示
37.// 顯示時間
38.long when = System.currentTimeMillis();
39.
40.notification.icon = R.drawable.ic_launcher;// 設置通知的圖標
41.notification.tickerText = tickerText; // 顯示在狀態欄中的文字
42.notification.when = when; // 設置來通知時的時間
43.notification.sound = Uri.parse("android.resource://com.sun.alex/raw/dida"); // 自定義聲音
44.notification.flags = Notification.FLAG_NO_CLEAR; // 點擊清除按鈕時就會清除消息通知,但是點擊通知欄的通知時不會消失
45.notification.flags = Notification.FLAG_ONGOING_EVENT; // 點擊清除按鈕不會清除消息通知,可以用來表示在正在運行
46.notification.flags |= Notification.FLAG_AUTO_CANCEL; // 點擊清除按鈕或點擊通知後會自動消失
47.notification.flags |= Notification.FLAG_INSISTENT; // 一直進行,比如音樂一直播放,知道用戶響應
48.notification.defaults = Notification.DEFAULT_SOUND; // 調用系統自帶聲音
49.notification.defaults = Notification.DEFAULT_SOUND;// 設置默認鈴聲
50.notification.defaults = Notification.DEFAULT_VIBRATE;// 設置默認震動
51.notification.defaults = Notification.DEFAULT_ALL; // 設置鈴聲震動
52.notification.defaults = Notification.DEFAULT_ALL; // 把所有的屬性設置成默認
53.
54.sendBtn.setOnClickListener(sendClickListener);
55.cancelBtn.setOnClickListener(cancelClickListener);
56.}
57.
58.private OnClickListener sendClickListener = new OnClickListener() {
59.@Override
60.public void onClick(View v) {
61.// 單擊通知後會跳轉到NotificationResult類
62.intent = new Intent(NotificationActivity.this,
63.NotificationResult.class);
64.// 獲取PendingIntent,點擊時發送該Intent
65.pIntent = PendingIntent.getActivity(NotificationActivity.this, 0,
66.intent, 0);
67.// 設置通知的標題和內容
68.notification.setLatestEventInfo(NotificationActivity.this, "標題",
69."內容", pIntent);
70.// 發出通知
71.nManager.notify(ID, notification);
72.}
73.};
74.
75.private OnClickListener cancelClickListener = new OnClickListener() {
76.@Override
77.public void onClick(View v) {
78.// 取消通知
79.nManager.cancel(ID);
80.}
81.};
82.}
源碼分享:http://www.jinhusns.com/Products/Download/?type=xcj
Android應用開發教程之十五:制作第三方數據庫與讀取
Android軟件開發中為什麼要制作第三方數據庫?在程序中獲取數據的方式無非就是兩種:本地獲取,服務器獲取。如果項目中的數據非常龐大,並且又不能使用
Google Play發布App中遇到"多個APK:版本1未提供給任何設備配置使用。"問題的解決方法,appapk
Google Play發布App中遇到"多個APK:版本1未提供給任何設備配置使用。"問題的解決方法,appapk在google play上發布apk
Android7.0 Phone應用源碼分析(三) phone拒接流程分析,android7.0拒接
Android7.0 Phone應用源碼分析(三) phone拒接流程分析,android7.0拒接接上篇博文:Android7.0 Phone應用源碼分析(二) pho
Android重構與設計之路,從整理提示對話框彈窗開始,android彈窗
Android重構與設計之路,從整理提示對話框彈窗開始,android彈窗 封裝一個獨立彈窗Module,這裡的彈窗包括普通的Dialog方式彈框和WindowMana