Android Notification消息提示

2020-05-29 16:40:16 浏览数 (1)

一般而言,消息提示,可以通过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();
     }

显示效果如下:

0 人点赞