簡介 :
通知是一個非常好的一個功能,當我們的某一個應用想用提醒用戶的時候比如想用提示 警告 以及信息等等,我們就可以用 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燈 有的還需要權限的獲取比如 : 震動就需要獲取權限 當然我說的只是幾個簡單的屬性其實還有很多還需要大家自己摸索 好了就到這裏,有不同意見或建議的還望指出謝謝!