getSystemService();的使用
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();的使用相关推荐
- 系统服务-----Activity服务的获取getSystemService
android的后台存在非常多service,它们在系统启动的时候被SystemServer开启.来为系统的正常执行做支撑.Activity中要调用这些service就得使用getSystemServ ...
- Android之getSystemService
getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...
- getSystemService() in Android
在之前研究了那么久的bindService()这个API,一直没搞清楚一个问题: 为什么我看到的基本上都是和AMS相关的代码,而之前所学到说如果application要和service打交道都是需要通 ...
- Android Context getSystemService分析
我们知道一个应用的Context个数是Activity个数+Service个数+1 当我们希望获取到系统服务时,可以调用Context的getSystemService方法,如获取到ActivityM ...
- getSystemService
getSystemService是Android很重要的一个API,它是Activity的一个方法,根据传入的NAME来取得对应的Object,然后转换成相应的服务对象.以下介绍系统相应的服务. 传入 ...
- android中getSystemService详解
原文地址:android中getSystemService详解作者:邹斌 http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.html http://blo ...
- 项目销毁主页Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService异常
项目需求,项目退出登录的时候,跳转登录页面,重新登录,会重新进入首页.很简单的需求,只需在退出的时候将存储的用户信息销毁,把之前活跃的activity销毁,重新跳转进入登录界面即可.但是在真正执行退出 ...
- java.lang.Object android.content.Context.getSystemService(java.lang.String)‘ on a null object
出现原因:在fragment中动态添加一个layout 例如: View notDataView = getLayoutInflater().inflate(R.layout.empty_view, ...
- Android 判断某个服务是否正在运行
判断某个服务是否正在运行的工具类 public class ServiceRunManager {public static boolean isServiceRunning(Context cont ...
最新文章
- windows/linux计算文件 MD5值
- 快速增量备份程序 DeltaCopy
- Asp.NetCore轻松学-部署到 Linux 进行托管
- Android-Socket的最基础实现以及遇见在2.3可用4.3不可用的解决方法
- PHP生成器--动态生成内容的数组
- QT限制文本框输入的方法
- 字体编辑器_三款好用的字体编辑器分享,让您拥有属于自己的字体
- CABasicAnimation添加动画离开屏幕就动画停止的问题
- android文件存储的有点,快速理解Android文件存储路径
- C#编程之SqlHelper
- 装完nvme固态经常蓝屏_NVMe固态硬盘安装Win7蓝屏0x0000007B快速解决方法
- python文件转换为pyd
- 爬取影评python_爬虫 | 战狼2 影评爬取及分析
- postman测试上传文件(上传图片)
- 文字怎么转语音?这些方法值得收藏
- cad的dwg如何转换成pdf?
- JAVA 二叉树 常见操作合集(前中后序递归非递归遍历 层序遍历 求深度宽度 判断兄弟结点 堂兄弟节点)
- Flutter开发(十七):Flutter首页导航的框架
- iOS状态栏使用总结
- 关闭脚本运行慢的提示