Android 中Notification和NotificationManager的使用

Notification使用基本步骤:

Nofification NotificationManager的使用

1.       获得系统级的服务NofifiactionManager

String Service = NOFICATION_SERVICE

NotificationManager nm = (NotificationManager)getSystemService(Service);

2.       实例化Notificatoin对象,并设置其属性:

 

Notification n = new Nofification();

//设置显示图标,会在状态栏显示

Int icon = R.drawable.icon;

//设置提示信息,会在状态栏显示

String tickerText = “Test NotificationManager”;

//显示时间

Long when = system.currentTimeMills();

n.icon = icon;

n.ticker = tickerText

n.when = when

还可以用构造方法来设置

NotificationManager nm = new NotificationManager(icon,ticker,when);

3.       调用 setLatestEventInfo()方法在视图中设置图标和时间

//实例化Intent

Intent intent = new Intent(this,MainActivity.class);

//获得PendingIntent

PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);

//设置事件信息

n.setLastestEventInfo(this,”my title”,”my Content”,pi);

4.  发出通知

.//标示通知ID

Int ID = 1;

Nm.notify(ID,n); 

 

 

实例:在一个activity中去注册一个广播,然后用这个广播去展示这个Notification.:

package com.king.android.controls;

import android.app.Activity;
import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.king.android.R;

/**

 * 描述:发起一个广播
 * 作者:Andy.Liu
 * 时间: 2012-7-19  上午08:31:49
 *
*/
public  class NotifityActiivty  extends Activity {
     private  static  final String MY_SERVICE = "com.king.android.controls.MY_NOTIFITY_SERVICE"; // 指定的通知动作
    
// 声明IPerson接口
     private IPerson iPerson;
     private Button btn;
    MyReceiver2 receiver =  new MyReceiver2();

    @Override
     protected  void onResume() {
         super.onResume();
        IntentFilter filter =  new IntentFilter();
         // 实例化MYReceiver2
        registerReceiver(receiver, filter);
    }
    @Override
     protected  void onPause() {
         super.onPause();
        unregisterReceiver(receiver);
    }
    
    @Override
     protected  void onCreate(Bundle savedInstanceState) {
        
         super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn = (Button) findViewById(R.id.btn_voice);
        btn.setText("发出通知");
        btn.setVisibility(View.VISIBLE);
        btn.setOnClickListener( new OnClickListener() {
            
            @Override
             public  void onClick(View v) {
                Intent intent =  new Intent();
                intent.setAction(MY_SERVICE);
                sendBroadcast(intent);
            }
        });
    }
    
}


package com.king.android.controls;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

/**

 * 描述:广播接受通知并发起通知事件
 * 作者:Andy.Liu
 * 时间: 2012-7-19  上午08:34:20
 *
*/
public  class NotifityReciver  extends BroadcastReceiver {

    @Override
     public  void onReceive(Context context, Intent intent) {
        Intent i =  new Intent();
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        i.setClass(context, DisplayActivity. class);
        context.startActivity(i);
    }

}



package com.king.android.controls;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import com.king.android.R;

/**

 * 描述:显示通知
 * 作者:Andy.Liu
 * 时间: 2012-7-19  上午08:36:31
 *
*/
public  class DisplayActivity  extends Activity {
     public  static  final  int NOFITY_ID =100;
    @Override
     protected  void onCreate(Bundle savedInstanceState) {
        
         super.onCreate(savedInstanceState);
        String Service = NOTIFICATION_SERVICE;
         final NotificationManager nm = (NotificationManager)getSystemService(Service);
        setContentView(R.layout.main);
        
        TextView tv = (TextView) findViewById(R.id.tv_info);
        tv.setVisibility(View.VISIBLE);
        Button btnCancel = (Button) findViewById(R.id.btn_voice);
        btnCancel.setVisibility(View.VISIBLE);
        btnCancel.setText("取消广播");
        btnCancel.setOnClickListener( new OnClickListener() {
            
            @Override
             public  void onClick(View v) {
                nm.cancel(NOFITY_ID);
            }
        });
    
        Notification n =  new Notification();
         int icon = R.drawable.ic_launcher;
        String tickerText = "Test notifiManager";
         long when = System.currentTimeMillis();
        n.icon = icon;
        n.tickerText = tickerText;
        n.when = when;
         // 实例化Intent
        Intent intent =  new Intent( this,MainActivity. class);
         // 获得PendingIntent
        PendingIntent pi = PendingIntent.getActivity( this,0,intent,0);
         // 设置事件信息
        n.setLatestEventInfo( this,"My title","My content",pi);
        nm.notify(NOFITY_ID,n);

    }

你可能感兴趣的:(Android 中Notification和NotificationManager的使用)