一般而言,消息提示,可以通过Toast方式,提醒给用户看,而通过Notification方式的话,可以在状态栏显示出来。并且有声音,还有文字描述,并且可以出现在消息公告栏,这在QQ,飞信等常用即时通信软件中应用广泛。点击该在状态栏中的图标,就又可以回到原程序中。这样就是一个进入该程序的入口,同时还可以显示状态,比较离开,隐身,忙碌等状态。下面我来通过一个例子来进行描述。
首先,Notification是通过NotificationManager进行管理的。是通过它来进行初始化操作的。如下所示:
//声明通知(消息)管理器 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); }
注意到:
//点击通知时转移内容 // 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(); }
显示效果如下: