notification的几种使用方法

Notification的使用

代码下载链接:http://download.csdn.net/detail/u011324501/9295057

方法1

public void notifi(){
NotificationManager nm = (NotificationManager) getApplicationContext()
    .getSystemService(Context.NOTIFICATION_SERVICE);
 // Intent intent = new Intent(this, MainActivity.class);
//  PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
//新建一个notification实例
  Notification.Builder builder = new Notification.Builder(
    getApplicationContext());
 // builder.setContentIntent(pIntent);
  builder.setSmallIcon(R.drawable.fsad);//设置小标题
//获取自定义布局
  RemoteViews remoteView = new RemoteViews(getPackageName(),
    R.layout.notification);
//获取布局id
  remoteView.setImageViewResource(R.id.image, R.drawable.fsad);
  remoteView.setTextViewText(R.id.title, "USB storage connected");
  remoteView.setTextViewText(R.id.content, "Click to FileManager");
  remoteView.setTextViewText(R.id.btn,"Remove");
  //Intent active = new Intent(this, MyReceiver.class);
  Intent active = new Intent("com.aaa");//发送广播
 // MainActivity.this.sendBroadcast(intent);
  // active.setAction(ACTION_NOTIFY_BUTTON);
  PendingIntent pintent2 = PendingIntent.getBroadcast(this, 0, active, 0);
//给广播添加监听器
  remoteView.setOnClickPendingIntent(R.id.btn, pintent2);
  Notification notification = builder.build();
  notification.contentView = remoteView;
  nm.notify(1000, notification);
  
 // NotificationManager manger = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);
//  manger.cancel(1000);//取消notification
}
 

方法2

public void notification(){
int icon = R.drawable.ic_launcher;  
        CharSequence tickerText = "Notification01";  
        long when = System.currentTimeMillis();  
        Notification notification = new Notification(icon,tickerText,when);  
        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification); 
        contentView.setImageViewResource(R.id.image, R.drawable.fsad);
        contentView.setTextViewText(R.id.title, "USB storage connected");  
        contentView.setTextViewText(R.id.content, "Click to FileManager");  
       // contentView.setTextViewText(R.id.btn,"btn");
        contentView.setCharSequence(R.id.btn, "setText", "remove");
       
        Intent active = new Intent("com.aaa");
       // notification.contentView = contentView;  
        notification.bigContentView =contentView;  
        
        PendingIntent pintent2 = PendingIntent.getBroadcast(getApplication(), 0, active,0);
        contentView.setOnClickPendingIntent(R.id.btn,pintent2);
        
        String ns = Context.NOTIFICATION_SERVICE;  
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);  
        mNotificationManager.notify(1000, notification); 
}

方法3

可以自定义notification的高度
public void no(){
//大图标
Bitmap btm = BitmapFactory.decodeResource(getResources(),
                        R.drawable.ic_launcher);
//Intent intent = new Intent(MainActivity.this, ResultActivity.class);
Intent active = new Intent("com.aaa");
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, active,0);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification); 
contentView.setCharSequence(R.id.btn,"setText", "Remove");
Notification noti = new NotificationCompat.Builder(MainActivity.this)
.setSmallIcon(R.drawable.ic_launcher)//小标题
.setLargeIcon(btm)//大标题
.setNumber(13)
.setContentIntent(pendingIntent)
.setStyle(
new NotificationCompat.InboxStyle()
.addLine("Click to FileManager") .setBigContentTitle("USB storage connected") .setSummaryText("Remove"))
.build();
   RemoteViews remoteView = new RemoteViews(getPackageName(),R.layout.notification);
   remoteView.setImageViewResource(R.id.image, R.drawable.fsad);
   remoteView.setTextViewText(R.id.title, "USB storage connected");
   remoteView.setTextViewText(R.id.content, "Click to FileManager");
   remoteView.setTextViewText(R.id.btn,"Remove");
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1000, noti);
}

方法4

可自定义notification自定义高度

public void nn(){
      Notification foregroundNote;
RemoteViews contentView = new RemoteViews(this.getPackageName(),
    R.layout.notification);
contentView.setImageViewResource(R.id.image, R.drawable.fsad);
        contentView.setTextViewText(R.id.title, "USB storage connected");  
        contentView.setTextViewText(R.id.content, "Click to FileManager");  
        contentView.setTextViewText(R.id.btn, "REMOVE");
 
Notification.Builder mNotifyBuilder = new Notification.Builder(this);
foregroundNote = mNotifyBuilder.setContentTitle("USB storage connected")//一级标题
        .setContentText("Click to FileManager")//二级标题
        .setSmallIcon(R.drawable.fsad)
       // .setLargeIcon(btm)//大图标
        .build();
Intent active = new Intent("com.aaa");
foregroundNote.bigContentView = contentView;
PendingIntent pintent = PendingIntent.getBroadcast(getApplication(), 0, active,0);
        contentView.setOnClickPendingIntent(R.id.btn,pintent);
NotificationManager m = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
m.notify(1000, foregroundNote);
}

移除notification方法:

public void removenm(){
NotificationManager nm = (NotificationManager) getApplicationContext()
 .getSystemService(Context.NOTIFICATION_SERVICE);
        nm.cancel(1000);
}

接收发送出来的广播:

public static class MyReceiver extends BroadcastReceiver {
 
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// 实例化Intent  
if(intent.getAction().equals("com.aaa")){
data();
Toast.makeText(context, "receiver", Toast.LENGTH_SHORT).show();
}
}
 
}<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>

Main.xml布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
         />
<Button
    android:id="@+id/remove"
    android:layout_below="@+id/btn"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
</RelativeLayout>

自定义notification布局:

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="fill_parent"  
    android:background="#ffffff"
    android:layout_height="wrap_content">  
    <ImageView
        android:id="@+id/image"
        android:layout_marginTop="10dip"
        android:layout_width="50dip"
        android:layout_marginLeft="8dip"
       
        android:layout_alignParentLeft="true"
        android:layout_height="40dip"/>
    <LinearLayout 
        android:id="@+id/linearlayout"
        android:layout_marginTop="7dip"
        android:layout_marginLeft="5dip"
        android:layout_toRightOf="@+id/image"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        
    <TextView android:id="@+id/title"
        android:textColor="#000000"
        android:textSize="16sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    
    <TextView android:id="@+id/content"
        android:textColor="#999999"
        android:textSize="14sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
     
    </LinearLayout>
    
     <TextView
     android:id="@+id/view"   
     android:layout_below="@+id/linearlayout"
     android:layout_marginTop="10dip"
     android:layout_marginLeft="60dip"
 android:layout_width="fill_parent"
 android:layout_height="1dip"
 android:background="#999999" />
    <TextView   
        android:id="@+id/btn"  
        android:layout_marginTop="6dip"
        android:background="#ffffff"
        android:textSize="18sp"
        android:layout_marginLeft="60dip"
        android:layout_width="wrap_content"  
        android:layout_height="40dip"  
        android:layout_below="@+id/view"
        android:textColor="#999999"
        android:layout_marginRight="10dp"  />  
        
</RelativeLayout>  

广播的注册:

//接收广播在MainActivity里面

<receiver android:name="com.example.boradcastreceiver.MainActivity$MyReceiver"> 
            <intent-filter> 
                <action android:name="com.aaa"/> 
            </intent-filter> 
        </receiver> 
        
        //直接是广播一个文件
        <receiver android:name=".MyReceiver"> 
            <intent-filter> 
                <action android:name="com.noti"/> 
            </intent-filter> 
        </receiver> 


你可能感兴趣的:(java,android)