1、普通Notification和自定义布局的Notification:
(1)如果不是在activity显示通知,但有传context,则
manager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);package com.example.mynotification;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.RemoteViews;public class MainActivity extends Activity { private Button button,button2; //别忘了实例化NotificationManager,Notification.Builder //二者通过Notification notification=builder.build();以及 //NotificationManager.notify(int id, Notification notification) private NotificationManager manager; Notification.Builder builder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); //实例化NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE); //实例化Builder builder=new Notification.Builder(MainActivity.this); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // Notification.Builde->Notification->NotificationManager // 图标,标题,消息,PenddIngntent Intent intent = new Intent(MainActivity.this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity( MainActivity.this, 0, intent, 0); //点击通知跳转的pendingIntent builder.setContentIntent(pendingIntent); //通知的标题 builder.setContentTitle("标题"); //通知的正文文本 builder.setContentText("你好啊!"); //状态栏上的图标以及拉下之后左侧的图标,必不可少 builder.setSmallIcon(R.drawable.noticon); //第一次产生提醒时会显示的文本 builder.setTicker("普通通知"); //设置消息提醒默认的设置 //默认震动;震动需要添加用户权限 //默认闪光 //默认铃声 builder.setDefaults(Notification.DEFAULT_ALL); Notification notification=builder.build(); //设置使点击后通知消失 notification.flags=Notification.FLAG_AUTO_CANCEL; // 1000为id数值,唯一标识 manager.notify(1, notification); } }); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Notification.Builder builder=new Notification.Builder(MainActivity.this); RemoteViews remoteViews=new RemoteViews(getPackageName(),R.layout.mynoti); remoteViews.setTextViewText(R.id.textView1, "自定义通知!"); Intent intent = new Intent(MainActivity.this, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity( MainActivity.this, 0, intent, 0); //指定Intent builder.setContentIntent(pendingIntent); //自定义布局 builder.setContent(remoteViews); //设置图标必不可少 builder.setSmallIcon(R.drawable.noticon); builder.setTicker("自定义通知"); Notification notification=builder.build(); manager.notify(5, notification); } }); }}
自定义的布局:mynoti.xml
Done!