您的位置:首页 > 移动开发 > Android开发

android双服务,消息通知(serviceutils)

2016-01-09 17:44 246 查看
package com.service.demo;

import java.util.List;

import com.example.servicetest2.R;

import android.app.ActivityManager;

import android.app.Notification;

import android.app.NotificationManager;

import android.app.PendingIntent;

import android.app.ActivityManager.RunningAppProcessInfo;

import android.content.Context;

import android.content.Intent;

import android.graphics.BitmapFactory;

import android.support.v4.app.NotificationCompat;

import android.support.v4.app.NotificationCompat.BigPictureStyle;

import android.support.v4.app.NotificationCompat.Builder;

/**

 * 服务工具类

 * @author Administrator

 * 2016-01-09

 */

public class ServiceUtils 

{

private static NotificationCompat.Builder mBuilder;
private static NotificationManager mNotificationManager;
private static int notifyId = 100;

/**
* 判断进程是否运行
* @return boolean
*/
public static boolean isProessRunning(Context context, String proessName) 
{

boolean isRunning = false;
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

List<RunningAppProcessInfo> lists = am.getRunningAppProcesses();
for (RunningAppProcessInfo info : lists) 
{
if (info.processName.equals(proessName)) 
{
isRunning = true;
}
}

return isRunning;
}
/**
* 显示消息通知
* @param context
* @param title
* @param content
* @param showTitle
*/
public static void showNotification(Context context,String title,String content,String showTitle)
{
NotifiManager(context,title,content,showTitle);

mBuilder.setContentTitle(title)
.setContentText(content)

// .setNumber(number)//显示数量
.setTicker(showTitle);//通知首次出现在通知栏,带上升动画效果的

mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);

         mNotificationManager.notify(notifyId, mBuilder.build());
}
/**
* 设置大视图
* @param context
* @param title
* @param content
* @param showTitle
*/
public static void showBigImgViewNotification(Context context,String title,String content,String showTitle)
{
 
  NotificationCompat.Builder builderPic = new Builder(context);
      builderPic.setSmallIcon(R.drawable.ic_launcher).setTicker("新浪体育提醒");
     
      BigPictureStyle pictureStyle = new BigPictureStyle();       //进行设置
      pictureStyle.setBigContentTitle("新浪体育 快船VS骑士 ");
      pictureStyle.bigPicture(BitmapFactory.decodeResource(context.getResources(), R.drawable.tt));
      pictureStyle.setSummaryText(" 新浪体育 快船VS骑士新浪体育 快船VS骑士新浪体育 快船VS骑士新浪体育 快船VS骑士新浪体育 快船VS骑士新浪体育 快船VS骑士快船VS骑士 天王山之战!!!");
      
      builderPic.setStyle(pictureStyle);                         //设置样式
     
      builderPic.setWhen(System.currentTimeMillis());            //设置显示的时间
      Notification notification = pictureStyle.build();
      notification.flags = Notification.FLAG_AUTO_CANCEL;
      
      mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
      mNotificationManager.notify(notifyId, notification);
}

/**
* 通知管理
* @param context
* @param title
* @param content
* @param showTitle
*/
public static void NotifiManager(Context context,String title,String content,String showTitle)
{
mBuilder = new NotificationCompat.Builder(context);
mBuilder.setContentTitle("测试标题")
.setContentText("测试内容")
.setContentIntent(getDefalutIntent(context,Notification.FLAG_AUTO_CANCEL))

// .setNumber(number)//显示数量
.setTicker("测试通知来啦")//通知首次出现在通知栏,带上升动画效果的
.setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示
.setPriority(Notification.PRIORITY_DEFAULT)//设置该通知优先级

// .setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消  
.setOngoing(false)//ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
.setDefaults(Notification.DEFAULT_VIBRATE|Notification.DEFAULT_SOUND)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合:
//Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission
.setSmallIcon(com.example.servicetest2.R.drawable.ic_launcher);
}

/**
* @获取默认的pendingIntent,为了防止2.3及以下版本报错
* @flags属性:  
* 在顶部常驻:Notification.FLAG_ONGOING_EVENT  
* 点击去除: Notification.FLAG_AUTO_CANCEL 
*/
public static PendingIntent getDefalutIntent(Context context,int flags)
{
PendingIntent pendingIntent= PendingIntent.getActivity(context, 1, new Intent(), flags);
return pendingIntent;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: