Android編程開發之NotiFication用法詳解_Android

來源:互聯網
上載者:User

本文執行個體講述了Android編程開發之NotiFication用法。分享給大家供大家參考,具體如下:

notification就是通知的意思,安卓中指通知欄,一般用在電話,簡訊,郵件,鬧鐘鈴聲,在手機的狀態列上就會出現一個小表徵圖,提示使用者處理這個快訊,這時手從上方滑動狀態列就可以展開並處理這個快訊。

在協助文檔中,是這麼說的, notification類表示一個持久的通知,將提交給使用者使用NotificationManager。已添加的Notification.Builder,使其更容易構建通知。

notification是一種讓你的應用程式在沒有開啟情況下或在後台運行警示使用者。它是看不見的程式組件(Broadcast Receiver,Service和不活躍的Activity)警示使用者有需要注意的事件發生的最好途徑。

先來區分以下狀態列和狀態條的區別:

1、狀態條就是手機螢幕最上方的一個條形狀的地區;

在狀態條有好多資訊量:比如usb串連表徵圖,手機訊號表徵圖,電池電量表徵圖,時間表徵圖等等;

2、狀態列就是手從狀態條滑下來的可以伸縮的view;

在狀態列中一般有兩類(使用FLAG_標記):

(1)進行中的程式;           (2)是通知事件;

一個Notification傳送的資訊有:

1、一個狀態條表徵圖;

2、在展開的狀態列視窗中顯示帶有大標題,小標題,表徵圖的資訊,並且有處理該點擊事件:比如調用該程式的入口類;

3、閃光,LED,或者震動;

下面對Notification類中的一些常量,欄位,方法簡單介紹一下:
常量:

DEFAULT_ALL                  使用所有預設值,比如聲音,震動,閃屏等等
DEFAULT_LIGHTS            使用預設閃光提示
DEFAULT_SOUNDS         使用預設提示聲音
DEFAULT_VIBRATE         使用預設手機震動

注意:在加入手機震動效果時一定要在項目資訊清單檔中加入手機震動許可權:

複製代碼 代碼如下:
<uses-permission android:name="android.permission.VIBRATE" />

下面通過簡單額小執行個體來具體實現notification功能:

MainActivity.java:

package com.example.lession16_notifi;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.res.Resources.NotFoundException;import android.os.Bundle;import android.view.View;import android.widget.Toast;public class MainActivity extends Activity {  private NotificationManager notificationManager;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    // 第一步:通過getSystemService()方法得到NotificationManager對象;    notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);  }  // 測試  public void test1(View v) {    showNotification("來簡訊了", "5557", "hello!", R.drawable.ic_launcher,        R.drawable.ic_launcher);  }  // 第二步:對Notification的一些屬性進行設定比如:內容,表徵圖,標題,相應notification的動作進行處理等等;  public void showNotification(String tickerText, String contentTitle,      String contentText, int iconId, int notiId) {    // 建立一個Notification    Notification notification = new Notification();    // 設定通知 訊息 表徵圖    notification.icon = iconId;    // 設定發出訊息的內容    notification.tickerText = tickerText;    // 設定發出通知的時間    notification.when = System.currentTimeMillis();    // 設定顯示通知時的預設的發聲、震動、Light效果    notification.defaults = Notification.DEFAULT_VIBRATE;// 震動    // Notification notification = new Notification(R.drawable.ic_launcher,"有新的訊息", System.currentTimeMillis());    // 3步:PendingIntent android系統負責維護    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,getIntent(), 0);    // 4步:設定更加詳細的資訊    notification.setLatestEventInfo(this, contentTitle, contentText,pendingIntent);    // 5步:使用notificationManager對象的notify方法 顯示Notification訊息 需要制定    // Notification的標識    notificationManager.notify(notiId, notification);  }  // 6步:使用notificationManager對象的cancelAll()方法取消  public void clearNoti(View v) {    notificationManager.cancelAll();// 清除所有  }}

布局檔案activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:paddingBottom="@dimen/activity_vertical_margin"  android:paddingLeft="@dimen/activity_horizontal_margin"  android:paddingRight="@dimen/activity_horizontal_margin"  android:paddingTop="@dimen/activity_vertical_margin"  tools:context=".MainActivity" >  <Button    android:id="@+id/button1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignParentLeft="true"    android:layout_alignParentRight="true"    android:layout_alignParentTop="true"    android:layout_marginTop="22dp"    android:onClick="test1"    android:text="@string/text_notifi" />  <Button    android:id="@+id/button2"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:layout_alignLeft="@+id/button1"    android:layout_below="@+id/button1"    android:layout_marginTop="60dp"    android:onClick="clearNoti"    android:text="@string/text_clear" /></RelativeLayout>

布局效果:

切記實現震動效果在資訊清單檔中加入許可權:

複製代碼 代碼如下:
<uses-permission android:name="android.permission.VIBRATE" />

實現效果如下:

希望本文所述對大家Android程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.