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;
}
}
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;
}
}
相关文章推荐
- Android Studio设置
- android双后台服务,消息通知类(service2)
- android双后台服务,消息通知类(service1)
- android 双后台服务,消息通知 (mainActivity)
- android双后台服务,消息通知类
- android 下雪
- ANDROID内存优化(大汇总——下)
- Android环境下安装openCV
- Android Tip : Android GestureDetector 手势识别 抬起 操作
- ANDROID内存优化(大汇总——中)
- Android开发技术周报
- Android - Menu
- Android开发技术周报
- ANDROID内存优化(大汇总——上)
- android选择本地图片并裁剪
- android值radioGroup实现多行多列单选框--动态加入
- 酷派大神9976A刷机
- android之旅26 JNI概念与运用
- AndroidManifest.xml
- Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用