一般而言,消息提示,可以通过Toast方式,提醒给用户看,而通过Notification方式的话,可以在状态栏显示出来。并且有声音,还有文字描述,并且可以出现在消息公告栏,这在QQ,飞信等常用即时通信软件中应用广泛。点击该在状态栏中的图标,就又可以回到原程序中。这样就是一个进入该程序的入口,同时还可以显示状态,比较离开,隐身,忙碌等状态。下面我来通过一个例子来进行描述。
首先,Notification是通过NotificationManager进行管理的。是通过它来进行初始化操作的。如下所示:
代码语言:javascript复制 //声明通知(消息)管理器
NotificationManager m_NotificationManager;
Intent m_Intent;
PendingIntent m_PendingIntent;
//声明Notification对象
Notification m_Notification;
void showNotification(){
//初始化NotificationManager对象
m_NotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//点击通知时转移内容
// m_Intent = new Intent(LoginActivity.this, MainActivity.class);
//主要是设置点击通知时显示内容的类
m_PendingIntent = PendingIntent.getActivity(LoginActivity.this, 0, getIntent(), 0); //如果轉移內容則用m_Intent();
//构造Notification对象
m_Notification = new Notification();
//设置通知在状态栏显示的图标
m_Notification.icon = R.drawable.img1;
//当我们点击通知时显示的内容
m_Notification.tickerText = "開始登陸系統...........";
//通知时发出默认的声音
m_Notification.defaults = Notification.DEFAULT_SOUND;
//设置通知显示的参数
m_Notification.setLatestEventInfo(LoginActivity.this, "MyIMSYS", "登陸通知", m_PendingIntent);
//可以理解为执行这个通知
m_NotificationManager.notify(0, m_Notification);
}
注意到:
代码语言:javascript复制 //点击通知时转移内容
// m_Intent = new Intent(LoginActivity.this, MainActivity.class);
//主要是设置点击通知时显示内容的类
m_PendingIntent = PendingIntent.getActivity(LoginActivity.this, 0, getIntent(), 0); //如果轉移內容則用m_Intent();
如果要点击进入别的Activity.可以在这里进行修改。
当然也可以去除该Notification.
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
m_NotificationManager.cancelAll();
}
显示效果如下: