服务相关工具类
来源:互联网 发布:卷积运算公式矩阵 编辑:程序博客网 时间:2024/05/22 13:44
import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public final class ServiceUtils {
private ServiceUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
/**
* 获取所有运行的服务
*
* @param context 上下文
* @return 服务名集合
*/
public static Set getAllRunningService(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> infos = activityManager.getRunningServices(0x7FFFFFFF);
Set<String> names = new HashSet<>();
if (infos == null || infos.size() == 0) return null;
for (RunningServiceInfo info : infos) {
names.add(info.service.getClassName());
}
return names;
}
/**
* 启动服务
*
* @param context 上下文
* @param className 完整包名的服务类名
*/
public static void startService(Context context, String className) {
try {
startService(context, Class.forName(className));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 启动服务
*
* @param context 上下文
* @param cls 服务类
*/
public static void startService(Context context, Class<?> cls) {
Intent intent = new Intent(context, cls);
context.startService(intent);
}
/**
* 停止服务
*
* @param context 上下文
* @param className 完整包名的服务类名
* @return {@code true}: 停止成功<br>{@code false}: 停止失败
*/
public static boolean stopService(Context context, String className) {
try {
return stopService(context, Class.forName(className));
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 停止服务
*
* @param context 上下文
* @param cls 服务类
* @return {@code true}: 停止成功<br>{@code false}: 停止失败
*/
public static boolean stopService(Context context, Class<?> cls) {
Intent intent = new Intent(context, cls);
return context.stopService(intent);
}
/**
* 绑定服务
*
* @param context 上下文
* @param className 完整包名的服务类名
* @param conn 服务连接对象
* @param flags 绑定选项
* <ul>
* <li>{@link Context#BIND_AUTO_CREATE}</li>
* <li>{@link Context#BIND_DEBUG_UNBIND}</li>
* <li>{@link Context#BIND_NOT_FOREGROUND}</li>
* <li>{@link Context#BIND_ABOVE_CLIENT}</li>
* <li>{@link Context#BIND_ALLOW_OOM_MANAGEMENT}</li>
* <li>{@link Context#BIND_WAIVE_PRIORITY}</li>
* </ul>
*/
public static void bindService(Context context, String className, ServiceConnection conn, int flags) {
try {
bindService(context, Class.forName(className), conn, flags);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 绑定服务
*
* @param context 上下文
* @param cls 服务类
* @param conn 服务连接对象
* @param flags 绑定选项
* <ul>
* <li>{@link Context#BIND_AUTO_CREATE}</li>
* <li>{@link Context#BIND_DEBUG_UNBIND}</li>
* <li>{@link Context#BIND_NOT_FOREGROUND}</li>
* <li>{@link Context#BIND_ABOVE_CLIENT}</li>
* <li>{@link Context#BIND_ALLOW_OOM_MANAGEMENT}</li>
* <li>{@link Context#BIND_WAIVE_PRIORITY}</li>
* </ul>
*/
public static void bindService(Context context, Class<?> cls, ServiceConnection conn, int flags) {
Intent intent = new Intent(context, cls);
context.bindService(intent, conn, flags);
}
/**
* 解绑服务
*
* @param context 上下文
* @param conn 服务连接对象
*/
public static void unbindService(Context context, ServiceConnection conn) {
context.unbindService(conn);
}
/**
* 判断服务是否运行
*
* @param context 上下文
* @param className 完整包名的服务类名
* @return {@code true}: 是<br>{@code false}: 否
*/
public static boolean isServiceRunning(Context context, String className) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> infos = activityManager.getRunningServices(0x7FFFFFFF);
if (infos == null || infos.size() == 0) return false;
for (RunningServiceInfo info : infos) {
if (className.equals(info.service.getClassName())) return true;
}
return false;
}
}
import android.app.ActivityManager.RunningServiceInfo;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public final class ServiceUtils {
private ServiceUtils() {
throw new UnsupportedOperationException("u can't instantiate me...");
}
/**
* 获取所有运行的服务
*
* @param context 上下文
* @return 服务名集合
*/
public static Set getAllRunningService(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> infos = activityManager.getRunningServices(0x7FFFFFFF);
Set<String> names = new HashSet<>();
if (infos == null || infos.size() == 0) return null;
for (RunningServiceInfo info : infos) {
names.add(info.service.getClassName());
}
return names;
}
/**
* 启动服务
*
* @param context 上下文
* @param className 完整包名的服务类名
*/
public static void startService(Context context, String className) {
try {
startService(context, Class.forName(className));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 启动服务
*
* @param context 上下文
* @param cls 服务类
*/
public static void startService(Context context, Class<?> cls) {
Intent intent = new Intent(context, cls);
context.startService(intent);
}
/**
* 停止服务
*
* @param context 上下文
* @param className 完整包名的服务类名
* @return {@code true}: 停止成功<br>{@code false}: 停止失败
*/
public static boolean stopService(Context context, String className) {
try {
return stopService(context, Class.forName(className));
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
/**
* 停止服务
*
* @param context 上下文
* @param cls 服务类
* @return {@code true}: 停止成功<br>{@code false}: 停止失败
*/
public static boolean stopService(Context context, Class<?> cls) {
Intent intent = new Intent(context, cls);
return context.stopService(intent);
}
/**
* 绑定服务
*
* @param context 上下文
* @param className 完整包名的服务类名
* @param conn 服务连接对象
* @param flags 绑定选项
* <ul>
* <li>{@link Context#BIND_AUTO_CREATE}</li>
* <li>{@link Context#BIND_DEBUG_UNBIND}</li>
* <li>{@link Context#BIND_NOT_FOREGROUND}</li>
* <li>{@link Context#BIND_ABOVE_CLIENT}</li>
* <li>{@link Context#BIND_ALLOW_OOM_MANAGEMENT}</li>
* <li>{@link Context#BIND_WAIVE_PRIORITY}</li>
* </ul>
*/
public static void bindService(Context context, String className, ServiceConnection conn, int flags) {
try {
bindService(context, Class.forName(className), conn, flags);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 绑定服务
*
* @param context 上下文
* @param cls 服务类
* @param conn 服务连接对象
* @param flags 绑定选项
* <ul>
* <li>{@link Context#BIND_AUTO_CREATE}</li>
* <li>{@link Context#BIND_DEBUG_UNBIND}</li>
* <li>{@link Context#BIND_NOT_FOREGROUND}</li>
* <li>{@link Context#BIND_ABOVE_CLIENT}</li>
* <li>{@link Context#BIND_ALLOW_OOM_MANAGEMENT}</li>
* <li>{@link Context#BIND_WAIVE_PRIORITY}</li>
* </ul>
*/
public static void bindService(Context context, Class<?> cls, ServiceConnection conn, int flags) {
Intent intent = new Intent(context, cls);
context.bindService(intent, conn, flags);
}
/**
* 解绑服务
*
* @param context 上下文
* @param conn 服务连接对象
*/
public static void unbindService(Context context, ServiceConnection conn) {
context.unbindService(conn);
}
/**
* 判断服务是否运行
*
* @param context 上下文
* @param className 完整包名的服务类名
* @return {@code true}: 是<br>{@code false}: 否
*/
public static boolean isServiceRunning(Context context, String className) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningServiceInfo> infos = activityManager.getRunningServices(0x7FFFFFFF);
if (infos == null || infos.size() == 0) return false;
for (RunningServiceInfo info : infos) {
if (className.equals(info.service.getClassName())) return true;
}
return false;
}
}
阅读全文
0 0
- 服务相关工具类
- Android ServiceUtils-服务相关工具类
- 服务操作工具类
- Spring 相关工具类
- Web相关工具类
- 文件相关工具类
- 安全相关工具类
- Math工具类相关
- 尺寸相关工具类
- 文件相关工具类
- Json相关工具类
- 权限相关工具类
- 屏幕相关工具类
- 字符串相关工具类
- 阴历相关工具类
- Log相关工具类
- 定位相关工具类
- 键盘相关工具类
- WebServce查询免费的天气预报实例
- Nginx配置详解
- java 中什么时候用抽象类,什么时候用 接口(面向对象的继承与多态)
- C++类和对象
- 解决部分华为,乐视手机听筒模式听不到声音问题
- 服务相关工具类
- udp_server
- 使用反射查询数据
- Struts2笔记05 action操作域对象
- 糟糕的内心独白-java工作怎么这么难找啊?
- windows程序设计——功能表及其他资源
- React-Native之手势进阶篇
- 2017/6/26 学习心得 jq节点操作
- 链表常见操作java实现一:链表初始化,求链表长度