【问题标题】:What exactly does using the Application Context mean?使用应用程序上下文到底是什么意思?
【发布时间】:2011-03-08 03:57:44
【问题描述】:

我是新手,如果这是一个非常愚蠢的问题,我很抱歉。我只是想澄清一些事情。我的书说我可以使用getApplicationContext() 方法检索进程的应用程序上下文。我真的不知道在哪里输入这个或如何处理它。我可以进入层次结构,但我该怎么处理那里的所有脚本。另外,在 main.xml 中,我将在哪里编写活动回调?一个练习要我在我的项目中添加一个日志标签,但我不知道该怎么做。确切的文字说:

“在 onCreate() 回调方法中,使用 Log.i() 方法添加信息日志消息。”

另一个练习说:

“实现除了onCreate()之外的一些Activity回调方法,比如onStart()。给每个回调方法添加日志消息,然后正常运行应用”。

由于这些似乎是基本问题,有人可以帮助我吗?

我正在使用 Android SDK 和 Eclipse。我已经制作了 Hello World 应用程序,但我不知道如何处理上下文或检索资源。请帮忙!

【问题讨论】:

  • 天哪,您刚刚指出了该平台的 PRE-1.0 版本的文档,该类甚至不是 SDK 的一部分。
  • 我认识这些练习。你的书是“山姆自学……在 24 小时内”吗?我有那个,当我完成它时,我觉得有一些非常关键的基本主题真的没有被涵盖。你可能想看看at some alternatives
  • @erichamion--您说得对,先生。 Sam's ... Java in 24 Hours 很糟糕。一些替代品——几乎任何替代品都会更好,但替代品的链接已损坏。在作者的集体辩护中,Java 非常庞大,他们必须选择要包含的内容。但是山姆把它缩小得太远了。即便如此,24小时的工作时间……嗯……一周每天3.5小时;每天8小时,连续3天。并且这些示例留给 LEARNING 用户的内容太多,以至于他们经常因为遗漏而无法编译。

标签: android eclipse resources android-context


【解决方案1】:

我会给你的第一条规则:如果你不知道为什么需要它,那么你可能不需要它。当您需要上下文时,使用您的活动对象作为上下文。

你所说的回调是在 Activity 类上的。应用程序基础描述了 Activity 是什么:http://developer.android.com/guide/topics/fundamentals.html#Components

您想使用 getApplicationContext() 的唯一时间是当您需要一个存在于 Activity 类(或其他组件)生命周期之外的 Context 时。您将希望找到有关需要这样做的特定情况的文档,周围有很多浮动。例如,这是 Android 文档的一部分:http://android-developers.blogspot.de/2009/01/avoiding-memory-leaks.html

【讨论】:

  • 问题的另一部分是关于日志标签的。标签只是一个您可以定义的字符串,可能是您的 Activity 类中的static final String。然后你会打电话,例如,Log.i(LOG_TAG, "onStart() was called. Hooray!")
  • 所以,您的答案是使用活动上下文。但是您链接到一般建议使用应用程序上下文以避免内存泄漏的文章?我现在有点有点困惑。使用活动上下文有什么好处?
【解决方案2】:

对于您在此处处理的任务,您将使用定义应用程序行为的 Java 代码,而不是定义资源和布局的 XML 文件或声明基本应用程序属性的 AndroidManifest.xml 文件。

如果您正在使用Sam's Teach Yourself... 一书的第 3 小时,那么您需要打开 src\com.androidbook.droid1\DroidActivity.java 文件。一般来说,您需要src\<package-name>\<class-name>.java。当您打开该文件时,您会看到一个类(在本例中为 DroidActivity),它扩展了 Activity 并且已经具有 onCreate() 回调方法。你想在onCreate() 期间发生的任何事情都在该方法中。可以在活动类中添加其他回调方法。要查看包含所有生命周期回调(但未在其中执行任何操作)的示例,请查看 here

日志标签只是一个字符串。例如,您可以在活动类中将其声明为private static final String

如果对方法所属的位置、在哪里以及如何定义变量或常量、如何调用方法、如何使用类等方面存在混淆,那么最好在开始使用 Android 之前阅读介绍性 Java 文本.有很多免费资源可供使用。

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 2012-11-04
    • 2017-08-07
    相关资源
    最近更新 更多