Java 我是否应该使用“_活动=此&引用;?
我应该使用“Java 我是否应该使用“_活动=此&引用;?,java,android,android-activity,Java,Android,Android Activity,我应该使用“\u activity=this;”吗 我在示例代码中多次看到_活动被引用。所以,我武断地认为这看起来是一个很好的实践,并且在我的所有代码中使用了一段时间(超过一年)。但是,在我开始传播这个词之前,我想找到一些合适的文档,说明使用全局(活动局部)上下文变量是否是好的做法 有人有想法/想法/链接吗?你知道有什么优点和缺点吗 到目前为止,我发现的一个资源似乎是,有好的时候,也有坏的时候 我知道我可以使用这个或主活动。这个,但这不是问题所在 …以防万一你不知道我在说什么,这里有一个现场制作
\u activity=this;
”吗
我在示例代码中多次看到_活动被引用。所以,我武断地认为这看起来是一个很好的实践,并且在我的所有代码中使用了一段时间(超过一年)。但是,在我开始传播这个词之前,我想找到一些合适的文档,说明使用全局(活动局部)上下文变量是否是好的做法
有人有想法/想法/链接吗?你知道有什么优点和缺点吗
到目前为止,我发现的一个资源似乎是,有好的时候,也有坏的时候
我知道我可以使用这个
或主活动。这个
,但这不是问题所在
…以防万一你不知道我在说什么,这里有一个现场制作的令人不安的例子:
public class MainActivity extends Activity {
MainActivity _activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_activity = this; // TODO: Find out if this is good practice?
setContentView(R.layout.activity_main);
}
public void onClickButton(View v) {
Toast.makeText(_activity, "Five boxing wizards", Toast.LENGTH_LONG).show();
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(_activity, "asdf", Toast.LENGTH_LONG).show();
}
});
}
}
编辑:评论的另一个附带问题:举手表决,谁实际使用了
\u活动?这不是好的做法。在大多数情况下,只需使用this
,在创建匿名子类等时使用MainActivity.this
我想问你自己一个正确的问题是,“添加这个成员变量对我有什么帮助吗?”或者“我能用\u活动做些什么,而我不能用这个。我可以告诉你答案是“没有”,但你应该自己决定这是否是真的。不,这不好。如果我在阅读代码,我知道“这”意味着什么,但如果我看到我需要调查。这不是一个好的做法
除了无法实现任何目标(直接使用此
无法实现的目标):
- 它使父对象变大(通过一个引用)
- 它可能会稍微慢一点,而且
- 它使你的代码更加脆弱;e、 g.如果有人意外地为变量指定了不同的值
我认为代码可读性较差,但您可能不同意这一点。只有当外部类不是活动,但您需要活动时,这才有意义。例如,如果您想在自己的文件中定义onclicklistener,除了创建不必要的引用之外,还需要传入并存储引用(注意不要像note;)一样太泄漏(因为实例也可以通过this
关键字或MainActivity获得。this
,不鼓励使用带下划线前缀的字段名,因为为什么您需要引用对象本身中的对象?您是否考虑对其进行静态
引用?也许我不应该这样做。)vial。我将编辑它,使按钮位于它自己的对象中。我会在大文件中使用引用,可能是子类。在这些情况下,只需使用MainActivity。这
。当您有一个同样可访问的引用时,无需保留额外的引用。起初,我也不知道\u活动
是什么。但是,在看了这么多次,包括在谷歌的示例代码中,我现在知道它的意思了。在谷歌的示例代码中,在哪里?即使命名约定不正确,也应该是mActivity()