• Android 判断Service是否开启


    被判断的Service 必须是带包名的全名

    通过Service的类名来判断是否启动某个服务

    private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){  
              
            for(int i = 0; i < mServiceList.size(); i ++){  
                if(className.equals(mServiceList.get(i).service.getClassName())){  
                    return true;  
                }  
            }  
            return false;  
        }

    获取所有启动的服务的类名

     private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){  
            String res = "";  
            for(int i = 0; i < mServiceList.size(); i ++){  
                res+=mServiceList.get(i).service.getClassName()+ " /n";  
            }  
              
            return res;  
        }

    判断服务是否存在

    ActivityManager mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    
      List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);
    
      // 我要判断的服务名字,必须是带包名的全名
      final String musicClassName = "rod.fasdf.TService";
    
      boolean b = MusicServiceIsStart(mServiceList, musicClassName);
      System.out.println("服务是否开启======>"+b);

    例子如下:

    package com.tutor.runningservice;  
    import java.util.List;  
    import android.app.Activity;  
    import android.app.ActivityManager;  
    import android.os.Bundle;  
    import android.widget.TextView;  
    public class RunningService extends Activity {  
        /** Called when the activity is first created. */  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            //setContentView(R.layout.main);  
            TextView mTextView = new TextView(this);  
            ActivityManager mActivityManager =   
                (ActivityManager)getSystemService(ACTIVITY_SERVICE);  
              
            List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);  
            //我要判断的服务名字,我在launcher2里加了一个音乐服务     
            final String musicClassName = "com.android.launcher2.MusicService";  
                    
            boolean b = MusicServiceIsStart(mServiceList, musicClassName);  
           
            mTextView.setText("你要判断的服务状态为: " +b+"\n" + getServiceClassName(mServiceList));  
            setContentView(mTextView);  
        }  
        //通过Service的类名来判断是否启动某个服务  
        private boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){  
              
            for(int i = 0; i < mServiceList.size(); i ++){  
                if(className.equals(mServiceList.get(i).service.getClassName())){  
                    return true;  
                }  
            }  
            return false;  
        }  
        //获取所有启动的服务的类名  
        private String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){  
            String res = "";  
            for(int i = 0; i < mServiceList.size(); i ++){  
                res+=mServiceList.get(i).service.getClassName()+ " \n";  
            }  
              
            return res;  
        }  
    } 
    
     
  • 相关阅读:
    Java 处理 multipart/mixed 请求
    SpringBoot 动态更新 resources 目录的文件
    dubbo 2.7.0 中缺乏 <dubbo:annotation /> 的解决方案
    设计模式 — 终章.
    代理模式
    状态模式.
    第七节、双目视觉之空间坐标计算
    第六节、双目视觉之相机标定
    经典项目博客集合
    第五节、轮廓检测、直线和圆、多边形检测
  • 原文地址:https://www.cnblogs.com/xuewater/p/2591452.html
Copyright © 2020-2023  润新知