Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 通知欄消息

Android 通知欄消息

編輯:關於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();
	}

上面的代碼是將發出檢查通知的時間存入文件,以備後來每次判斷。




						
		
	
				
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved