- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
context.getSystemService()
是一个昂贵的调用吗?
即我已经构建了一个小 http 网络库(我知道还有其他可用的 http 网络库),它使用 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
检查(在执行 http 之前)请求)如果用户连接到互联网(一种快速失败策略)。
我的问题是我应该将 ConnectivityManager
保存为我的 http 库的实例变量(类字段)还是应该调用 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE );
每次在我开始一个 http 请求之前检索一个“新的”ConnectivityManager?每次我调用 getSystemService(Context.CONNECTIVITY_SERVICE)
时是否返回相同的 ConnectivityManager 实例(换句话说,将 ConnectivityManger 存储到类字段中会导致问题,因为我的 http 库是长期存在的 -> 只要应用程序运行就存在)
最佳答案
My question is should I save the ConnectivityManager as an instance variable (class field) of my http library or should I call ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); every time before I start an http request to retrieve a "new" ConnectivityManager?
我会保留实例。虽然 getSystemService()
实际上调用起来并不昂贵,但为什么调用它的次数比需要的多?
in other words, can storing a ConnectivityManger into a class field lead to problems since my http library is a long living one --> lives as long as application run
为了安全起见,请在Application
单例(getApplicationContext()
) 上调用getSystemService()
。 通常,getSystemService()
返回的对象对创建它的Context
一无所知。偶尔,它确实存在——Android 5.0 中的 CameraManager
遭受此缺陷,尽管它已在 Android 5.1 中得到修复。如果系统服务对象的生命周期将超过我所在的上下文,我倾向于使用 getApplicationContext()
来检索系统服务,以免偏执。
(内存泄漏,他们是来找我的!)
Is the same ConnectivityManager instance returned every time I call getSystemService(Context.CONNECTIVITY_SERVICE)
老实说,我从来没有看过。
关于android - context.getSystemService() 是一个昂贵的电话吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417398/
我正在尝试编写一个服务来获取 Gear Live 上的心率,按照这里的问题 Get Heart Rate from "Sensor" Samsung Gear Live 如果我把这部分放在 L
所以我跟随this tutorial ,我被困住了。在 Eclipse 中,我收到一条错误消息,指出“UserItemAdapter 类型未定义方法 getSystemService(String)”
在 Android eclipse 中当我想使用非静态方法“getSystemService”时,它显示错误: Cannot make a static reference to the non-st
我已按照本教程获取我的 ListView 填充数据 -- http://android.amberfog.com/?p=296 . 但它只有在我像教程那样子类化我的自定义列表适配器 (MyCustom
如果我连接到 WLAN,以下行将不会导致空指针异常: ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.C
我遵循了如何制作下载 .pdf 文件的应用程序的教程。 代码如下: protected void onCreate(Bundle savedInstanceState) { super.onC
我需要在自定义微调器中使用“getSystemService”,所以自定义微调器会扩展 getSystemService Will Use To Copy Text To Clip Board is
我试图将 onClickListener 添加到 RecyclerView 中的一个按钮,该按钮将复制一个字符串,但它说 getSystemService(CLIPBOARD_SERVICE) 不可用
乍一看下面的代码 mLocationManager对象在 onCreate(...) 之后应该超出范围已完成,预期的行为是 onLocationChanged在对象被垃圾回收之前,永远不会被调用或调用
我想测试一些关于USB设备的东西,我尝试编写一个小程序,我确信这是错误的,但这不是这个问题的重点。我确信我的导入没问题,但 Android Studio 拒绝构建此类,并出现有关 GetSystemS
现在已经为此苦苦挣扎了很长一段时间,足以让此处的用户实际上在堆栈上溢出。我们正在开发一个 android 应用程序,我想测试一个 Activity 类中的方法。我以前做过一些单元测试,但从来没有针对
此方法是否检查实际连接到互联网或设备是否连接到无线网络。 我很想知道,如果设备已连接到路由器,但路由器未连接到网络或已关闭,它是否会返回 true。 我的代码:- private boolean is
当我使用“getSystemService”时,我遇到了这个错误The method getSystemService(String) is undefined for the type WebApp
所以我现在只是试图在我的 getView 函数中膨胀一个 View ,而 getContext() 出于某种原因说它是未定义的.. package com.MTSUAndroid; import co
Context.getSystemService 的文档州 Returns: The service or null if the name does not exist. 接受的名称列表列为 AC
getSystemService 的文档建议不要在各种不同的上下文之间共享服务对象。 对于单个上下文,是通过将服务对象分配给 onCreate() 中的实例字段来缓存服务对象,还是应该在使用时获取?惯
context.getSystemService() 是一个昂贵的调用吗? 即我已经构建了一个小 http 网络库(我知道还有其他可用的 http 网络库),它使用 ConnectivityManag
我遇到了这个问题:getSystemService 定义在 Context 类中,所以我假设它在 context.getSystemService 时被调用。我无法理解以下代码,其中 Broadcas
我怎样才能像下面的代码那样在 fragment 类中使用 getSystemService final EditText input = new EditText(getContext()); Inp
我的问题是,在我的 MainActivity 的 onCreate() 方法中,我正在创建新的 Thread 对象,我想将对 this Activity 的引用传递给该对象,然后在该线程中使用它来调用
我是一名优秀的程序员,十分优秀!