- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这篇文章中
When to call activity context OR application context?
马克墨菲说
“如果来自 getApplicationContext() 的 Context 持有由您对其调用创建的东西而您没有清理,它可能会造成内存泄漏。对于 Activity,如果它持有某些东西,一旦 Activity 被垃圾收集,其他所有内容也会被清除。Application 对象将在您的进程的生命周期内保留。”
哪些调用会创建应用程序上下文保留的内容?
我有一个图书馆,它需要各种事物的上下文。它可以在后台运行并跨越 Activity ,但使用和更新 Activity 上下文会出现问题。
我认为这可能是使用应用程序上下文更可取的场合之一?
最佳答案
如果库中对象的生命周期可以跨越多个 Activity ,那么绝对使用应用程序上下文。使用 Activity 上下文可以防止垃圾收集器丢弃上下文。由于 Activity 上下文可以保留相当多的数据,因此您的内存使用量可能会急剧增加。
此外,如果 Activity 关闭,它会放弃其窗口 token 。尝试使用该上下文生成对话框将给出 BadTokenException
。因此,如果对象不直接绑定(bind)到 Activity 生命周期,则没有必要为对象提供 Activity 上下文。
关于Android getApplicationContext内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224414/
我确定我昨晚没有做任何奇怪或错误的事情。昨晚,我仍然能够 Toast.makeText(getApplicationContext(), "Some String", Toast.LENGTH_SHO
首先是Toast.makeText()的格式: public static Toast makeText (Context context, CharSequence text, int durati
我正在尝试获取用户的位置,这似乎给我带来了麻烦。当我调用 distanceBetween() 来查看测试是否正常工作时,我在 getApplicationContext() 处收到 NullPoint
我正在关注本教程: http://www.tutos-android.com/importer-ajouter-certificat-ssl-auto-signe-bouncy-castle-andr
我是一名 Android 初学者,制作了一个简单的 Service 示例。 但在单个代码中 getApplicationContext() 方法的行为有所不同,请检查 MainActivity 的注释
我尝试了以下代码来扩展 Activity ,它运行得很好,但现在我更改了代码以使用扩展 fragment 。我在互联网上搜索并找到了 getActivity() 函数来调用 query() 和其他函数
我正在尝试通过应用程序上下文保存位置,因此我执行了以下操作: 我的应用类: 导入android.app.Application; 导入 com.google.android.maps.GeoPoint
我想使用异步事件对输入到 texbox 中的文本进行 toast ,例如。按下按钮。它编译没有错误,但按下按钮时没有任何反应。从我在论坛上收集到的信息来看,我的背景是错误的。有人能帮我吗?下面是代码:
我已经根据现有 Android 项目中的另一个类指定了一个类。 addRow() 方法应该动态地将行添加到表中。创建新的 TextView 以添加到我的行时以及创建该行时,我应该指定“上下文”。当前的
我正在 Android Froyo 系统上开发一个应用程序,一切都很好,除了当我创建一个服务时,该服务会产生几个线程。在其中一个线程中,我想停止服务。显然 stopService() 超出了线程类的范
我正在尝试以下代码,其中服务正在实现我的监听器: public class MyListenerClass extends Service implements MyListenerInterface
我有一个 fragment ,允许用户输入消息和消息将被传递到的电话号码。我收到错误消息“无法解析方法 getApplicationContext()” 我在这里查看了答案 the method ge
我总是得到这个 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context an
我正在尝试使用一种方法从布局生成位图并将位图保存到内存中的文件中。但是,getApplicationContext() 未解析。 方法代码如下 private void generateAnd
我有扩展 Application 类的 VideoApplication 类。我已经在此类中创建了我的其他 Java 类的对象,以便我可以通过 Activity 传递它。 public class V
我有一个存储应用上下文信息的应用程序。应用上下文信息在扩展 Application 类的 MyApp 类中的 Activity 之间共享。 我正在为我的 Activity 编写单元测试,并且我想检查当
有谁知道如何在 monodroid 中获取应用程序上下文(我正在寻找 getApplicationContext() 的 monodroid 实现)?我试过 Application.Applicati
如果用户没有输入用户名和密码,我试图弹出消息,但是我的问题是 getApplicationcontext(),它说“无法解析方法”。我如何解决它? - - - - - - - - - - - - -
我在使用外部数据库时遇到问题。DB位于 Assets 字典中。 我正在使用https://github.com/jgilfelt/android-sqlite-asset-helper打开数据库。 下
我正在创建一个应用程序单例,用于在 Activity 之间共享数据。 AppData(单例) import android.app.Application; public class AppData
我是一名优秀的程序员,十分优秀!