在Android(尤其是应用程序上下文)中实现构造函数的正确方法是什么?

在Android(尤其是应用程序上下文)中实现构造函数的正确方法是什么?,第1张

概述在android中实现构造函数的正确方法是什么?似乎在活动或服务中,“onCreate()”是神奇的地方.我问的原因是因为我想确保自己在做正确的事情,宣布属性放在我的类的顶部(尤其是上下文),然后在onCreate内设置属性值.//ActivitylaunchedviaanIntent,withsome'extras'publi

在android中实现构造函数的正确方法是什么?

似乎在活动或服务中,“ onCreate()”是神奇的地方.

我问的原因是因为我想确保自己在做正确的事情,宣布
属性放在我的类的顶部(尤其是上下文),然后在onCreate内设置属性值.

// Activity launched via an Intent, with some 'extras'public class SomeActivity extends Activity {    private Context context;    private String foo;    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // Set the object attribute for later use, good or Bad to do this?        context = getApplicationContext();        Intent fooIntent = getIntent();        foo = fooIntent.getStringExtra("foo");    }    private voID someMethodThatNeedsContext() {        // For example:        Cursor c = this.context.getContentResolver().query(foo, xxx, xxx);        // Or is it better practice to:        // A) Pass the context as a local variable to this method        // B) Use getApplicationContext() locally when needed    }}

也许这些选项都可以,但我想不通?
您可能有任何特定的阅读和/或建议对我有很大的帮助.

解决方法:

选项B-因为您可以从Activity类中的任何非静态方法调用getApplicationContext().
实际上,Activity也是从Context派生的(在继承树中的某个位置.),因此您可以执行以下 *** 作:

Cursor c = getContentResolver()....

您不必保留对上下文的引用.特别是不是静态的,这可能会导致问题.

而且您是正确的-由于通常不为自己的Activity创建自己的构造函数,因此将用于构造的代码放在onCreate中.

总结

以上是内存溢出为你收集整理的在Android(尤其是应用程序上下文)中实现构造函数的正确方法是什么?全部内容,希望文章能够帮你解决在Android(尤其是应用程序上下文)中实现构造函数的正确方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1084224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存