service怎么才能在系统休眠后不被杀掉? 一般来说是这样的,两个service相互监听,一个停止了,另一个就把停止的那个service重启 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请问两个service怎么相互监听,一个service停止了,另一个service是怎么知道的,靠广播吗? 这个怎么实现,在ondestory的时候发送广播么,但是系统好像是直接progress.kill() /** * 用来判断服务是否运行. * @param context * @param className 判断的服务名字 * @return true 在运行 false 不在运行 */ public static boolean isServiceRunning(Context mContext,String className) { boolean isRunning = false; ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(30); if (!(serviceList.size()>0)) { return false; } for (int i=0; i<serviceList.size(); i++) { if (serviceList.get(i).service.getClassName().equals(className) == true) { isRunning = true; break; } } return isRunning; } 如果两个服务在不停遍历,这样也不合适,会有性能的问题 /** * 用来判断服务是否运行. * @param context * @param className 判断的服务名字 * @return true 在运行 false 不在运行 */ public static boolean isServiceRunning(Context mContext,String className) { boolean isRunning = false; ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> serviceList = activityManager.getRunningServices(30); if (!(serviceList.size()>0)) { return false; } for (int i=0; i<serviceList.size(); i++) { if (serviceList.get(i).service.getClassName().equals(className) == true) { isRunning = true; break; } } return isRunning; } 如果两个服务在不停遍历,这样也不合适,会有性能的问题应该不是这样的,,, 看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,, 看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,alarm定时去检测服务是否运行,如果没运行就启动,定时也会被系统休眠给干掉的吧 看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,alarm定时去检测服务是否运行,如果没运行就启动,定时也会被系统休眠给干掉的吧不会,因为是系统service 看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,alarm定时去检测服务是否运行,如果没运行就启动,定时也会被系统休眠给干掉的吧不会,因为是系统service对,系统service是不会被杀掉的,要不然系统就挂了。。 楼主找到办法了吗 ,我用小米手机测试,service是直接被杀死的.但是QQ/微信不会 1.要想避免这种情况可以通过startForeground让服务前台运行,当stopservice的时候通过stopForeground去掉。要想实现需求,我们只需要在onStartCommand里面调用 startForeground,然后再onDestroy里面调用stopForeground即可! 实际情况就譬如手机里面的音乐播放器一样,不管手机如何休眠,只要开始播放音乐了,就不会kill掉这个服务,一旦停止播放音乐,服务就可能被清掉。2.参考下这篇文章:http://thelostriver.blog.163.com/blog/static/130364744201231385646838/ 这样你看行不行啊,在启动应用的时候启动两个服务,分别在这两个服务的onDestroy中分别先去启动另外的服务,在另外的服务的onStartCommand中去启动自己,两个服务都这么干 加载网络图片时如何都能预先能知道他的宽高 Android SDK 报错了,怎么办 android 多个 ListView 共用滚动条 系统字体大小怎么设置 请教个问题 android源码编译通过后编译单个模块时输出很多.ogg ignored.是怎么回事? 图片外观大变样 做android的,有必要学习协议栈神马的吗? Fragment多个页面切换没反应 有什么好书推荐一下呗 android 中sqlite查询条件如何对blob类型进行处理 为什么我开发的安卓软件 MIUI能打开正常 安卓系统就会闪退
/**
* 用来判断服务是否运行.
* @param context
* @param className 判断的服务名字
* @return true 在运行 false 不在运行
*/
public static boolean isServiceRunning(Context mContext,String className) {
boolean isRunning = false;
ActivityManager activityManager = (ActivityManager)
mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList
= activityManager.getRunningServices(30);
if (!(serviceList.size()>0)) {
return false;
}
for (int i=0; i<serviceList.size(); i++) {
if (serviceList.get(i).service.getClassName().equals(className) == true) {
isRunning = true;
break;
}
}
return isRunning;
} 如果两个服务在不停遍历,这样也不合适,会有性能的问题
/**
* 用来判断服务是否运行.
* @param context
* @param className 判断的服务名字
* @return true 在运行 false 不在运行
*/
public static boolean isServiceRunning(Context mContext,String className) {
boolean isRunning = false;
ActivityManager activityManager = (ActivityManager)
mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> serviceList
= activityManager.getRunningServices(30);
if (!(serviceList.size()>0)) {
return false;
}
for (int i=0; i<serviceList.size(); i++) {
if (serviceList.get(i).service.getClassName().equals(className) == true) {
isRunning = true;
break;
}
}
return isRunning;
} 如果两个服务在不停遍历,这样也不合适,会有性能的问题应该不是这样的,,,
看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,
看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,alarm定时去检测服务是否运行,如果没运行就启动,定时也会被系统休眠给干掉的吧
看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,alarm定时去检测服务是否运行,如果没运行就启动,定时也会被系统休眠给干掉的吧不会,因为是系统service
看看利用系统时钟来实现的守护进程alarm那个我倒是知道,但是你说的另外一个servic不能是系统service吧,,,alarm定时去检测服务是否运行,如果没运行就启动,定时也会被系统休眠给干掉的吧不会,因为是系统service对,系统service是不会被杀掉的,要不然系统就挂了。。
要想实现需求,我们只需要在onStartCommand里面调用 startForeground,然后再onDestroy里面调用stopForeground即可!
实际情况就譬如手机里面的音乐播放器一样,不管手机如何休眠,只要开始播放音乐了,就不会kill掉这个服务,一旦停止播放音乐,服务就可能被清掉。
2.参考下这篇文章:http://thelostriver.blog.163.com/blog/static/130364744201231385646838/