Notification--------通知的基本用法

簡介 :

     通知是一個非常好的一個功能,當我們的某一個應用想用提醒用戶的時候比如想用提示 警告 以及信息等等,我們就可以用 Notification 來操作, 首先這個非常的簡單下面我們就趕緊學一下吧 !


        呈上詳細註解代碼 :


package com.example.liangshaoteng.contentprovider;

import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private NotificationManager notificationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //首先我們小通過getSystemService來獲取通知通知管理者
        notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //簡單的通知但不能點擊進入
                Notification build = new NotificationCompat.Builder(getApplicationContext())
                .setContentTitle("this is content title")
                .setContentText("I LOVE MY HOME")
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.mipmap.ic_launcher)
                .build();
                notificationManager.notify(1, build);
            }
        });
    }
}

  看一下效果圖我點擊按鈕 :

 


 

正如大家想的一樣彈了出來,但是你好發現我們這個點擊不了,沒有任何反應,現在呢我們就需要解決這個問題

 1  首先我們需要創建一個Activity命名爲 NotificationActivity 給出代碼 : 


package com.example.liangshaoteng.contentprovider;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private NotificationManager notificationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //首先我們小通過getSystemService來獲取通知通知管理者
        notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //添加一下代碼
                Intent intent = new Intent(MainActivity.this, NotificationActivity.class);
                PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                //簡單的通知但不能點擊進入
                //添加setContentIntent方法點擊進入
                Notification build = new NotificationCompat.Builder(getApplicationContext())
                        .setContentTitle("this is content title")
                        .setContentText("I LOVE MY HOME")
                        .setWhen(System.currentTimeMillis())
                        .setSmallIcon(R.mipmap.ic_launcher)
                        .setContentIntent(pendingIntent).build();
                notificationManager.notify(1, build);
            }
        });
    }
}

大家現在就可以點擊進入了,但是你會發現一個問題就是點擊完雖然進入了,但是通知欄上的圖沒有消失! 

按照常理應該時點擊完成後就消失的,不要着急來解決它,其實有兩個方法可以解決它

 1 在Notification的後面添加 setAutoCancel 顧名思義讓它自動消失

 2 在我們的NotificationActivity裏面添加一下代碼 : 

package com.example.liangshaoteng.contentprovider;

import android.app.NotificationManager;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class NotificationActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_notification);
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        //這裏的1就是我們定義時候寫的notify
     notificationManager.cancel(1);
    }
}

好了基本的用法你已經學會啦! 下面給大家說一下幾個屬性 : 

.setContentTitle("this is content title") 設置內容的標題
.setContentText("I LOVE MY HOME")    設置內容
.setWhen(System.currentTimeMillis())   設置時間 
.setSmallIcon(R.mipmap.ic_launcher)  設置通知欄的圖標
.setContentIntent(pendingIntent)       設置進入的內容intent
.setAutoCancel(true)            設置觸發自動取消
.setSound()                                                設置聲音
.setVibrate()                                               設置震動
.setLights()                                                控制LED燈

有的還需要權限的獲取比如 : 震動就需要獲取權限 

當然我說的只是幾個簡單的屬性其實還有很多還需要大家自己摸索

好了就到這裏,有不同意見或建議的還望指出謝謝!

發佈了54 篇原創文章 · 獲贊 3 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章