[Android Pro] Notification的使用

Android 4.0以前: 

1: 普通的notification

private static final int NOTIFY_ID = 0;
notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    private void showNotification(Store store) {
        Notification notification = new Notification();
        notification.flags |= Notification.FLAG_SHOW_LIGHTS;
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.defaults = Notification.DEFAULT_ALL;
        notification.icon = R.drawable.ic_launch;
        notification.when = System.currentTimeMillis();

        Intent intent = new Intent(this,AlarmActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        intent.putExtra("store", store);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,intent, PendingIntent.FLAG_UPDATE_CURRENT);//FLAG_ONE_SHOT

         //Change the name of the notification here
        notification.setLatestEventInfo(this, store.getStoreName()+"("+store.getDistance()+")", store.getAddress(), contentIntent);
        notificationManager.notify(NOTIFY_ID, notification);
    }

2: 将服务service设置为前台notification

public class MyService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();
        setServiceForground();
    }

    @SuppressWarnings("deprecation")
    public void setServiceForground() {
        Notification notification = new Notification(R.drawable.ic_launcher,
        "my_service_name", System.currentTimeMillis());
    //要添加newtask PendingIntent p_intent
= PendingIntent.getActivity(this, 0, new Intent( this, MainActivity.class), 0); notification.setLatestEventInfo(this, "MyServiceNotification", "MyServiceNotification is Running!", p_intent); startForeground(0x1982, notification); }
@Override
public IBinder onBind(Intent intent) { return null; } }

Android 4.0 以后: 

将服务service设置为前台notification 

public class MyService extends Service {

    @Override
    public void onCreate() {
        super.onCreate();
        setServiceForground();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }


    public void setServiceForground() {
        Notification.Builder build = new Notification.Builder(this);
//      PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(
//            this, MainActivity.class), 0);
//      build.setContentIntent(contentIntent);
        build.setSmallIcon(R.drawable.ic_launcher);    
        build.setContentTitle("MyServiceNotification");
        build.setContentText("MyServiceNotification is Running!");
        startForeground(0x1982, build.build());
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}
原文地址:https://www.cnblogs.com/0616--ataozhijia/p/4184620.html