|  |  |  | @ -1,19 +1,12 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package com.king.app.updater.service; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import android.app.Notification; | 
			
		
	
		
			
				
					|  |  |  |  | import android.app.NotificationChannel; | 
			
		
	
		
			
				
					|  |  |  |  | import android.app.NotificationManager; | 
			
		
	
		
			
				
					|  |  |  |  | import android.app.PendingIntent; | 
			
		
	
		
			
				
					|  |  |  |  | import android.app.Service; | 
			
		
	
		
			
				
					|  |  |  |  | import android.content.Context; | 
			
		
	
		
			
				
					|  |  |  |  | import android.content.Intent; | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.Binder; | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.Build; | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.IBinder; | 
			
		
	
		
			
				
					|  |  |  |  | import android.support.annotation.DrawableRes; | 
			
		
	
		
			
				
					|  |  |  |  | import android.support.annotation.Nullable; | 
			
		
	
		
			
				
					|  |  |  |  | import android.support.annotation.RequiresApi; | 
			
		
	
		
			
				
					|  |  |  |  | import android.support.v4.app.NotificationCompat; | 
			
		
	
		
			
				
					|  |  |  |  | import android.support.v4.content.ContextCompat; | 
			
		
	
		
			
				
					|  |  |  |  | import android.text.TextUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import android.util.Log; | 
			
		
	
	
		
			
				
					|  |  |  | @ -25,6 +18,7 @@ import com.king.app.updater.constant.Constants; | 
			
		
	
		
			
				
					|  |  |  |  | import com.king.app.updater.http.HttpManager; | 
			
		
	
		
			
				
					|  |  |  |  | import com.king.app.updater.http.IHttpManager; | 
			
		
	
		
			
				
					|  |  |  |  | import com.king.app.updater.util.AppUtils; | 
			
		
	
		
			
				
					|  |  |  |  | import com.king.app.updater.util.NotificationUtils; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import java.io.File; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -275,7 +269,7 @@ public class DownloadService extends Service { | 
			
		
	
		
			
				
					|  |  |  |  |             isDownloading = true; | 
			
		
	
		
			
				
					|  |  |  |  |             mLastProgress = 0; | 
			
		
	
		
			
				
					|  |  |  |  |             if(isShowNotification){ | 
			
		
	
		
			
				
					|  |  |  |  |                 showStartNotification(notifyId,channelId,channelName,notificationIcon,getString(R.string.app_updater_start_notification_title),getString(R.string.app_updater_start_notification_content),config.isVibrate(),config.isSound()); | 
			
		
	
		
			
				
					|  |  |  |  |                 NotificationUtils.showStartNotification(getContext(),notifyId,channelId,channelName,notificationIcon,getString(R.string.app_updater_start_notification_title),getString(R.string.app_updater_start_notification_content),config.isVibrate(),config.isSound()); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if(callback!=null){ | 
			
		
	
	
		
			
				
					|  |  |  | @ -302,7 +296,7 @@ public class DownloadService extends Service { | 
			
		
	
		
			
				
					|  |  |  |  |                             content += percentage; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                         showProgressNotification(notifyId, channelId, notificationIcon, getString(R.string.app_updater_progress_notification_title), content, currProgress, 100); | 
			
		
	
		
			
				
					|  |  |  |  |                         NotificationUtils.showProgressNotification(getContext(),notifyId, channelId, notificationIcon, getString(R.string.app_updater_progress_notification_title), content, currProgress, 100); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
	
		
			
				
					|  |  |  | @ -317,7 +311,7 @@ public class DownloadService extends Service { | 
			
		
	
		
			
				
					|  |  |  |  |         public void onFinish(File file) { | 
			
		
	
		
			
				
					|  |  |  |  |             Log.d(Constants.TAG,"onFinish:" + file); | 
			
		
	
		
			
				
					|  |  |  |  |             isDownloading = false; | 
			
		
	
		
			
				
					|  |  |  |  |             showFinishNotification(notifyId,channelId,notificationIcon,getString(R.string.app_updater_finish_notification_title),getString(R.string.app_updater_finish_notification_content),file,authority); | 
			
		
	
		
			
				
					|  |  |  |  |             NotificationUtils.showFinishNotification(getContext(),notifyId,channelId,notificationIcon,getString(R.string.app_updater_finish_notification_title),getString(R.string.app_updater_finish_notification_content),file,authority); | 
			
		
	
		
			
				
					|  |  |  |  |             if(isInstallApk){ | 
			
		
	
		
			
				
					|  |  |  |  |                 AppUtils.installApk(getContext(),file,authority); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
	
		
			
				
					|  |  |  | @ -334,7 +328,7 @@ public class DownloadService extends Service { | 
			
		
	
		
			
				
					|  |  |  |  |             //支持下载失败时重新下载,当重新下载次数不超过限制时才被允许
 | 
			
		
	
		
			
				
					|  |  |  |  |             boolean isReDownload = this.isReDownload && mCount < reDownloads; | 
			
		
	
		
			
				
					|  |  |  |  |             String content = isReDownload ? getString(R.string.app_updater_error_notification_content_re_download) : getString(R.string.app_updater_error_notification_content); | 
			
		
	
		
			
				
					|  |  |  |  |             showErrorNotification(notifyId,channelId,notificationIcon,getString(R.string.app_updater_error_notification_title),content,isReDownload,config); | 
			
		
	
		
			
				
					|  |  |  |  |             NotificationUtils.showErrorNotification(getContext(),notifyId,channelId,notificationIcon,getString(R.string.app_updater_error_notification_title),content,isReDownload,config); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |             if(callback!=null){ | 
			
		
	
		
			
				
					|  |  |  |  |                 callback.onError(e); | 
			
		
	
	
		
			
				
					|  |  |  | @ -349,7 +343,7 @@ public class DownloadService extends Service { | 
			
		
	
		
			
				
					|  |  |  |  |         public void onCancel() { | 
			
		
	
		
			
				
					|  |  |  |  |             Log.d(Constants.TAG,"onCancel"); | 
			
		
	
		
			
				
					|  |  |  |  |             isDownloading = false; | 
			
		
	
		
			
				
					|  |  |  |  |             cancelNotification(notifyId); | 
			
		
	
		
			
				
					|  |  |  |  |             NotificationUtils.cancelNotification(getContext(),notifyId); | 
			
		
	
		
			
				
					|  |  |  |  |             if(callback!=null){ | 
			
		
	
		
			
				
					|  |  |  |  |                 callback.onCancel(); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
	
		
			
				
					|  |  |  | @ -367,191 +361,6 @@ public class DownloadService extends Service { | 
			
		
	
		
			
				
					|  |  |  |  |         super.onDestroy(); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     //---------------------------------------- Notification
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 显示开始下载是的通知 | 
			
		
	
		
			
				
					|  |  |  |  |      * @param notifyId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelName | 
			
		
	
		
			
				
					|  |  |  |  |      * @param icon | 
			
		
	
		
			
				
					|  |  |  |  |      * @param title | 
			
		
	
		
			
				
					|  |  |  |  |      * @param content | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private void showStartNotification(int notifyId,String channelId, String channelName,@DrawableRes int icon,CharSequence title,CharSequence content,boolean isVibrate,boolean isSound){ | 
			
		
	
		
			
				
					|  |  |  |  |         if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ | 
			
		
	
		
			
				
					|  |  |  |  |             createNotificationChannel(channelId,channelName,isVibrate,isSound); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setPriority(NotificationManager.IMPORTANCE_HIGH); | 
			
		
	
		
			
				
					|  |  |  |  |         if(isVibrate && isSound){ | 
			
		
	
		
			
				
					|  |  |  |  |             builder.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND); | 
			
		
	
		
			
				
					|  |  |  |  |         }else if(isVibrate){ | 
			
		
	
		
			
				
					|  |  |  |  |             builder.setDefaults(Notification.DEFAULT_VIBRATE); | 
			
		
	
		
			
				
					|  |  |  |  |         }else if(isSound){ | 
			
		
	
		
			
				
					|  |  |  |  |             builder.setDefaults(Notification.DEFAULT_SOUND); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Notification notification = builder.build(); | 
			
		
	
		
			
				
					|  |  |  |  |         notification.flags = Notification.FLAG_NO_CLEAR | Notification.FLAG_ONLY_ALERT_ONCE; | 
			
		
	
		
			
				
					|  |  |  |  |         notifyNotification(notifyId,notification); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 显示下载中的通知(更新进度) | 
			
		
	
		
			
				
					|  |  |  |  |      * @param notifyId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param icon | 
			
		
	
		
			
				
					|  |  |  |  |      * @param title | 
			
		
	
		
			
				
					|  |  |  |  |      * @param content | 
			
		
	
		
			
				
					|  |  |  |  |      * @param progress | 
			
		
	
		
			
				
					|  |  |  |  |      * @param size | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private void showProgressNotification(int notifyId,String channelId,@DrawableRes int icon,CharSequence title,CharSequence content,int progress,int size){ | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content,progress,size); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Notification notification = builder.build(); | 
			
		
	
		
			
				
					|  |  |  |  |         notification.flags = Notification.FLAG_NO_CLEAR | Notification.FLAG_ONLY_ALERT_ONCE; | 
			
		
	
		
			
				
					|  |  |  |  |         notifyNotification(notifyId,notification); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 显示下载完成时的通知(点击安装) | 
			
		
	
		
			
				
					|  |  |  |  |      * @param notifyId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param icon | 
			
		
	
		
			
				
					|  |  |  |  |      * @param title | 
			
		
	
		
			
				
					|  |  |  |  |      * @param content | 
			
		
	
		
			
				
					|  |  |  |  |      * @param file | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private void showFinishNotification(int notifyId,String channelId,@DrawableRes int icon,CharSequence title,CharSequence content,File file,String authority){ | 
			
		
	
		
			
				
					|  |  |  |  |         cancelNotification(notifyId); | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setAutoCancel(true); | 
			
		
	
		
			
				
					|  |  |  |  |         Intent intent = AppUtils.getInstallIntent(getContext(),file,authority); | 
			
		
	
		
			
				
					|  |  |  |  |         PendingIntent clickIntent = PendingIntent.getActivity(getContext(), notifyId,intent, PendingIntent.FLAG_UPDATE_CURRENT); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setContentIntent(clickIntent); | 
			
		
	
		
			
				
					|  |  |  |  |         Notification notification = builder.build(); | 
			
		
	
		
			
				
					|  |  |  |  |         notification.flags = Notification.FLAG_AUTO_CANCEL; | 
			
		
	
		
			
				
					|  |  |  |  |         notifyNotification(notifyId,notification); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private void showErrorNotification(int notifyId,String channelId,@DrawableRes int icon,CharSequence title,CharSequence content,boolean isReDownload,UpdateConfig config){ | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setAutoCancel(true); | 
			
		
	
		
			
				
					|  |  |  |  |         if(isReDownload){//重新下载
 | 
			
		
	
		
			
				
					|  |  |  |  |             Intent intent  = new Intent(getContext(),DownloadService.class); | 
			
		
	
		
			
				
					|  |  |  |  |             intent.putExtra(Constants.KEY_RE_DOWNLOAD,true); | 
			
		
	
		
			
				
					|  |  |  |  |             intent.putExtra(Constants.KEY_UPDATE_CONFIG,config); | 
			
		
	
		
			
				
					|  |  |  |  |             PendingIntent clickIntent = PendingIntent.getService(getContext(), notifyId,intent, PendingIntent.FLAG_UPDATE_CURRENT); | 
			
		
	
		
			
				
					|  |  |  |  |             builder.setContentIntent(clickIntent); | 
			
		
	
		
			
				
					|  |  |  |  |         }else{ | 
			
		
	
		
			
				
					|  |  |  |  |             PendingIntent clickIntent = PendingIntent.getService(getContext(), notifyId,new Intent(), PendingIntent.FLAG_UPDATE_CURRENT); | 
			
		
	
		
			
				
					|  |  |  |  |             builder.setContentIntent(clickIntent); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         Notification notification = builder.build(); | 
			
		
	
		
			
				
					|  |  |  |  |         notification.flags = Notification.FLAG_AUTO_CANCEL; | 
			
		
	
		
			
				
					|  |  |  |  |         notifyNotification(notifyId,notification); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 显示通知信息(非第一次) | 
			
		
	
		
			
				
					|  |  |  |  |      * @param notifyId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param icon | 
			
		
	
		
			
				
					|  |  |  |  |      * @param title | 
			
		
	
		
			
				
					|  |  |  |  |      * @param content | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private void showNotification(int notifyId,String channelId,@DrawableRes int icon,CharSequence title,CharSequence content,boolean isAutoCancel){ | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationCompat.Builder builder = buildNotification(channelId,icon,title,content); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setAutoCancel(isAutoCancel); | 
			
		
	
		
			
				
					|  |  |  |  |         Notification notification = builder.build(); | 
			
		
	
		
			
				
					|  |  |  |  |         notification.flags = Notification.FLAG_AUTO_CANCEL; | 
			
		
	
		
			
				
					|  |  |  |  |         notifyNotification(notifyId,notification); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 取消通知 | 
			
		
	
		
			
				
					|  |  |  |  |      * @param notifyId | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private void cancelNotification(int notifyId){ | 
			
		
	
		
			
				
					|  |  |  |  |         getNotificationManager().cancel(notifyId); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 获取通知管理器 | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private NotificationManager getNotificationManager(){ | 
			
		
	
		
			
				
					|  |  |  |  |         return (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 创建一个通知渠道(兼容0以上版本) | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelName | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     @RequiresApi(api = Build.VERSION_CODES.O) | 
			
		
	
		
			
				
					|  |  |  |  |     private void createNotificationChannel(String channelId, String channelName,boolean isVibrate,boolean isSound){ | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationChannel channel = new NotificationChannel(channelId,channelName, NotificationManager.IMPORTANCE_HIGH); | 
			
		
	
		
			
				
					|  |  |  |  |         channel.enableVibration(isVibrate); | 
			
		
	
		
			
				
					|  |  |  |  |         if(!isSound){ | 
			
		
	
		
			
				
					|  |  |  |  |             channel.setSound(null,null); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         getNotificationManager().createNotificationChannel(channel); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 构建一个通知构建器 | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param icon | 
			
		
	
		
			
				
					|  |  |  |  |      * @param title | 
			
		
	
		
			
				
					|  |  |  |  |      * @param content | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private NotificationCompat.Builder buildNotification(String channelId, @DrawableRes int icon,CharSequence title,CharSequence content){ | 
			
		
	
		
			
				
					|  |  |  |  |         return buildNotification(channelId,icon,title,content,Constants.NONE,Constants.NONE); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 构建一个通知构建器 | 
			
		
	
		
			
				
					|  |  |  |  |      * @param channelId | 
			
		
	
		
			
				
					|  |  |  |  |      * @param icon | 
			
		
	
		
			
				
					|  |  |  |  |      * @param title | 
			
		
	
		
			
				
					|  |  |  |  |      * @param content | 
			
		
	
		
			
				
					|  |  |  |  |      * @param progress | 
			
		
	
		
			
				
					|  |  |  |  |      * @param size | 
			
		
	
		
			
				
					|  |  |  |  |      * @return | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private NotificationCompat.Builder buildNotification(String channelId,@DrawableRes int icon,CharSequence title,CharSequence content,int progress,int size){ | 
			
		
	
		
			
				
					|  |  |  |  |         NotificationCompat.Builder builder = new NotificationCompat.Builder(getContext(),channelId); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setSmallIcon(icon); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setContentTitle(title); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setContentText(content); | 
			
		
	
		
			
				
					|  |  |  |  |         builder.setOngoing(true); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         if(progress!= Constants.NONE && size!=Constants.NONE){ | 
			
		
	
		
			
				
					|  |  |  |  |             builder.setProgress(size,progress,false); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return builder; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 更新通知栏 | 
			
		
	
		
			
				
					|  |  |  |  |      * @param id | 
			
		
	
		
			
				
					|  |  |  |  |      * @param notification | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private void notifyNotification(int id, Notification notification){ | 
			
		
	
		
			
				
					|  |  |  |  |         getNotificationManager().notify(id,notification); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     //---------------------------------------- Binder
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     @Nullable | 
			
		
	
	
		
			
				
					|  |  |  | 
 |