getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象。下面介绍系统相应的服务:

传入的Name 返回的对象 说明
WINDOW_SERVICE  WindowManager 管理打开的窗口程序
LAYOUT_INFLATER_SERVICE LayoutInflater  取得xml里定义的view
ACTIVITY_SERVICE ActivityManager  管理应用程序的系统状态

POWER_SERVICE

PowerManger 电源的服务
ALARM_SERVICE AlarmManager 闹钟的服务

NOTIFICATION_SERVICE

NotificationManager 状态栏的服务
KEYGUARD_SERVICE  KeyguardManager  键盘锁的服务
LOCATION_SERVICE  LocationManager  位置的服务,如GPS
SEARCH_SERVICE SearchManager  搜索的服务
VEBRATOR_SERVICE  Vebrator 手机震动的服务
CONNECTIVITY_SERVICE Connectivity 网络连接的服务
WIFI_SERVICE WifiManager Wi-Fi服务
 TELEPHONY_SERVICE TeleponyManager 电话服务

代码示例,使用判断网络连接是否可用,并判断是否是wifi:

    protected int checkNetworkInfo() {ConnectivityManager con = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkinfo = con.getActiveNetworkInfo();if (networkinfo == null || !networkinfo.isAvailable()) {// 当前网络不可用return 1;}boolean wifi = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();if (wifi) {// 使用wifi上网return 2;}return 3;}

转载:获取Android正在运行的任务和服务

检测某ActivityUpdate是否在当前Task的栈顶

public static boolean isTopActivy(String cmdName, Context context){ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(Integer.MAX_VALUE);String cmpNameTemp = null;if (null != runningTaskInfos){cmpNameTemp = (runningTaskInfos.get(0).topActivity).toString();}if (null == cmpNameTemp){return false;}return cmpNameTemp.equals(cmdName);}

判断Android应用是否在前台

public static boolean isAppOnForeground(Context context){ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);String packageName = context.getPackageName();List<RecentTaskInfo> appTask = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);if (appTask == null){return false;}if (appTask.get(0).baseIntent.toString().contains(packageName)){return true;}return false;}

获取Android手机内安装的所有桌面

private static List<String> getAllTheLauncher(Context context){List<String> names = null;PackageManager pkgMgt = context.getPackageManager();Intent it = new Intent(Intent.ACTION_MAIN);it.addCategory(Intent.CATEGORY_HOME);List<ResolveInfo> ra = pkgMgt.queryIntentActivities(it, 0);if (ra.size() != 0){names = new ArrayList<String>();}for (int i = 0; i < ra.size(); i++){String packageName = ra.get(i).activityInfo.packageName;names.add(packageName);}return names;}

Android 判断程序前后台状态

public static boolean isLauncherRunnig(Context context){boolean result = false;List<String> names = getAllTheLauncher(context);ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);List<ActivityManager.RunningAppProcessInfo> appList = mActivityManager.getRunningAppProcesses();for (RunningAppProcessInfo running : appList){if (running.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){for (int i = 0; i < names.size(); i++){if (names.get(i).equals(running.processName)){result = true;break;}}}}return result;}

getSystemService();的使用相关推荐

  1. 系统服务-----Activity服务的获取getSystemService

    android的后台存在非常多service,它们在系统启动的时候被SystemServer开启.来为系统的正常执行做支撑.Activity中要调用这些service就得使用getSystemServ ...

  2. Android之getSystemService

    getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...

  3. getSystemService() in Android

    在之前研究了那么久的bindService()这个API,一直没搞清楚一个问题: 为什么我看到的基本上都是和AMS相关的代码,而之前所学到说如果application要和service打交道都是需要通 ...

  4. Android Context getSystemService分析

    我们知道一个应用的Context个数是Activity个数+Service个数+1 当我们希望获取到系统服务时,可以调用Context的getSystemService方法,如获取到ActivityM ...

  5. getSystemService

    getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...

  6. android中getSystemService详解

    原文地址:android中getSystemService详解作者:邹斌 http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.html http://blo ...

  7. 项目销毁主页Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService异常

    项目需求,项目退出登录的时候,跳转登录页面,重新登录,会重新进入首页.很简单的需求,只需在退出的时候将存储的用户信息销毁,把之前活跃的activity销毁,重新跳转进入登录界面即可.但是在真正执行退出 ...

  8. java.lang.Object android.content.Context.getSystemService(java.lang.String)‘ on a null object

    出现原因:在fragment中动态添加一个layout 例如: View notDataView = getLayoutInflater().inflate(R.layout.empty_view, ...

  9. Android 判断某个服务是否正在运行

    判断某个服务是否正在运行的工具类 public class ServiceRunManager {public static boolean isServiceRunning(Context cont ...

最新文章

  1. windows/linux计算文件 MD5值
  2. 快速增量备份程序 DeltaCopy
  3. Asp.NetCore轻松学-部署到 Linux 进行托管
  4. Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法
  5. PHP生成器--动态生成内容的数组
  6. QT限制文本框输入的方法
  7. 字体编辑器_三款好用的字体编辑器分享,让您拥有属于自己的字体
  8. CABasicAnimation添加动画离开屏幕就动画停止的问题
  9. android文件存储的有点,快速理解Android文件存储路径
  10. C#编程之SqlHelper
  11. 装完nvme固态经常蓝屏_NVMe固态硬盘安装Win7蓝屏0x0000007B快速解决方法
  12. python文件转换为pyd
  13. 爬取影评python_爬虫 | 战狼2 影评爬取及分析
  14. postman测试上传文件(上传图片)
  15. 文字怎么转语音?这些方法值得收藏
  16. cad的dwg如何转换成pdf?
  17. JAVA 二叉树 常见操作合集(前中后序递归非递归遍历 层序遍历 求深度宽度 判断兄弟结点 堂兄弟节点)
  18. Flutter开发(十七):Flutter首页导航的框架
  19. iOS状态栏使用总结
  20. 关闭脚本运行慢的提示

热门文章

  1. ChatGPT是如何一本正经地胡说八道的?
  2. 非科班出身的我,如何读完上百本英文原著的(此文必看)
  3. 职业高中计算机基础知识点,提高职业高中计算机应用基础教学能力
  4. C++ 长整型数据的输出
  5. STM32CubeMX5.1.0使用教程,以STM32L431为例(二):新建工程、时钟、gpio
  6. 各个Android 市场的开发者的网址
  7. 橱窗带货的视频素材在哪里找?新手做带货原创短视频哪里下载?
  8. 中基鸿业长期理财产品存在哪些风险
  9. B端产品经理-表格设计总结
  10. c语言格斗游戏,[原创]格斗游戏