Android_Notification

xml文件:android

<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="com.example.notificationdemo.MainActivity" >
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        >
        <Button 
            android:id="@+id/send_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="send Message"/>
        <Button 
            android:id="@+id/cancel_btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="cancel Message"
            />
    </LinearLayout>
</RelativeLayout>

源代碼:併發

package com.example.notificationdemo;

import android.app.Activity;
import android.app.Notification;
import android.app.Notification.Builder;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/**
 * Notification是顯示在手機狀態欄的消息(手機狀態欄位於手機最頂端),表明一種全局效果的通知 通知欄的內容:圖標,標題,內容,時間,點擊後響應
 * 如何實現通知欄: 獲取notificationManager 顯示通知欄:notify(id,notification) 取消通知欄:cancel(id)
 * 構造Notification並設置顯示內容 通知欄通知能夠設置聲音提示,指示燈以及震動效果,後二者注意需添加權限
 * 
 * 
 * @author Administrator
 *
 */
public class MainActivity extends Activity implements OnClickListener {

    private Button send;
    private Button cancel;
    private NotificationManager manager;
    private int NOTIFICATION_ID;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        send = (Button) findViewById(R.id.send_btn);
        cancel = (Button) findViewById(R.id.cancel_btn);
        send.setOnClickListener(this);
        cancel.setOnClickListener(this);
        manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);//系統經常使用服務
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.send_btn:
            sendNotification();
            break;
        case R.id.cancel_btn:
            manager.cancel(NOTIFICATION_ID);//取消發送的通知
            break;
        }
    }

    /**
     * 構造notification併發送到通知欄
     */
    private void sendNotification() {
        // TODO Auto-generated method stub
        Intent intent = new Intent(this, MainActivity.class);
        PendingIntent pintent = PendingIntent.getActivity(this, 0, intent, 0);
        Builder builder = new Notification.Builder(this);
        builder.setSmallIcon(R.drawable.ic_launcher);// 設置圖標
        builder.setTicker("hello");// 設置手機狀態欄的提示
        // 拖拽開手機狀態欄提示的內容
        builder.setWhen(System.currentTimeMillis());// 設置時間
        builder.setContentTitle("通知");// 設置標題
        builder.setContentText("內容");// 設置內容
        builder.setContentIntent(pintent);// 設置點擊以後的響應,意圖

        /*
         * builder.setDefaults(Notification.DEFAULT_SOUND);//設置聲音
         * builder.setDefaults(Notification.DEFAULT_LIGHTS);//設置指示燈
         * builder.setDefaults(Notification.DEFAULT_VIBRATE);//設置震動
         */
        builder.setDefaults(Notification.DEFAULT_ALL);
        Notification notification = builder.getNotification();// 4.1如下
        // builder.build();//4.1及以上
        manager.notify(NOTIFICATION_ID, notification);//發送通知到通知欄
    }

}
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息