Android 通知栏消息

通知栏消息是Android的一个最成功的发明,的确给用户带来很好的体验。
主要用到的类有NotificationManager。是用来管理提醒的。
还有PendingIntent用来指定点击后跳转的。
现在公司的需求就是:需要检查服务端有没有消息要推送,每次打开软件都去检查太消耗了,所以我的策略是每天第一次打开软件时去检测,这一天后来再打开软件就不检测了。
看代码吧:
	/**
	 * 是否需要检查通知栏提示
	 * @return
	 */
	private boolean isNeedNotify(){
		SharedPreferences share = getSharedPreferences(SHARE_APP_TAG, Context.MODE_PRIVATE);
		String notifyDate = share.getString(MAP_NOTIFY_DATE, "");
                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
		 String dateStr = df.format(new Date());
 		if(dateStr.equals(notifyDate)){
		return false;}
		else{return true;}}
上面这段代码是检查今天有没有检查过。
	if(isNeedNotify()){
			//如果需要检查通知栏提示的话,3秒之后去检查
			new Timer().schedule(new TimerTask() {
				
				@Override
				public void run() {
					createNotify();
				}
			}, 3000);
		}
上面这段代码是判断是否需要检查,如果需要的话,3秒钟之后开始检查。
 //创建通知栏信息
    private void createNotify(){
    		putNotifyDate();
    		Log.i("notify=====", "notify");
    		init();
       	 //新建状态栏通知  
           baseNF = new Notification();  
           //设置通知在状态栏显示的图标  
           baseNF.icon = R.drawable.icon_01; 
           
           //通知时在状态栏显示的内容
           baseNF.tickerText = "纵横通知消息";
           //通知被点击后,自动消失  
           baseNF.flags |= Notification.FLAG_AUTO_CANCEL; 
         //第二个参数 :下拉状态栏时显示的消息标题 expanded message title  
           //第三个参数:下拉状态栏时显示的消息内容 expanded message text  
           //第四个参数:点击该通知时执行页面跳转  
           baseNF.setLatestEventInfo(ListViewActivity.this, "标题", "内容", pd);  
         //发出状态栏通知 
           nm.notify(Notification_ID_BASE, baseNF);  
    }

为了方便,我暂时用本地数据代替到服务器获取数据。上面的代码是创建状态栏通知。
 	/**
     	  * 初始化状态栏通知
     	*/
    private void  init(){
		nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
		Intent intent = new Intent(this,ListViewActivity.class);  
		pd = PendingIntent.getActivity(ListViewActivity.this, 0, intent, 0);
	}

上面的代码是初始化一些状态栏通知需要的
	/**
	 * 将发出检查通知的时间存入文件
	 */
	private void putNotifyDate(){
		 SharedPreferences share = getSharedPreferences(SHARE_APP_TAG, 0);
	         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
		 String dateStr = df.format(new Date());
	     share.edit().putString(MAP_NOTIFY_DATE,dateStr).commit();
	}

上面的代码是将发出检查通知的时间存入文件,以备后来每次判断。




Android 通知栏消息,,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。