AndroidNotification

来源:互联网 发布:淘宝佣金网 编辑:程序博客网 时间:2024/06/10 09:16

点击打开链接

Android提示栏实现跳转等

package com.example.notificationdemo;import android.os.Bundle;import android.app.Activity;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.support.v4.app.NotificationCompat;import android.support.v4.app.TaskStackBuilder;import android.util.Log;import android.view.Menu;import android.view.View;import android.widget.Button;public class MainActivity extends Activity {private NotificationManager mNotificationManager;private int notificationID = 100;private int numMessages = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button startBtn = (Button) findViewById(R.id.start);startBtn.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {displayNotification();}});Button cancelBtn = (Button) findViewById(R.id.cancel);cancelBtn.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {cancelNotification();}});Button updateBtn = (Button) findViewById(R.id.update);updateBtn.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {updateNotification();}});}protected void displayNotification() {Log.i("Start", "notification");/* Invoking the default notification service */NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);mBuilder.setContentTitle("New Message");mBuilder.setContentText("You've received new message.");mBuilder.setTicker("New Message Alert!");mBuilder.setSmallIcon(R.drawable.xxx);/* Increase notification number every time a new notification arrives */mBuilder.setNumber(++numMessages);/* Creates an explicit intent for an Activity in your app */Intent resultIntent = new Intent(this, NotificationView.class);TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);stackBuilder.addParentStack(NotificationView.class);/* Adds the Intent that starts the Activity to the top of the stack */stackBuilder.addNextIntent(resultIntent);PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);mBuilder.setContentIntent(resultPendingIntent);mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);/* notificationID allows you to update the notification later on. */mNotificationManager.notify(notificationID, mBuilder.build());}protected void cancelNotification() {Log.i("Cancel", "notification");numMessages = 0;mNotificationManager.cancel(notificationID);}protected void updateNotification() {Log.i("Update", "notification");/* Invoking the default notification service */NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);mBuilder.setContentTitle("Updated Message");mBuilder.setContentText("You've got updated message.");mBuilder.setTicker("Updated Message Alert!");mBuilder.setSmallIcon(R.drawable.xxx);/* Increase notification number every time a new notification arrives */mBuilder.setNumber(++numMessages);/* Creates an explicit intent for an Activity in your app */Intent resultIntent = new Intent(this, NotificationView.class);TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);stackBuilder.addParentStack(NotificationView.class);/* Adds the Intent that starts the Activity to the top of the stack */stackBuilder.addNextIntent(resultIntent);PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);mBuilder.setContentIntent(resultPendingIntent);mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);/* Update the existing notification using same notification ID */mNotificationManager.notify(notificationID, mBuilder.build());}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}


0 0