'this'、'activityname.this'和getApplicationContext()之间的区别是什么?

4

我不知道它们之间的区别,有时我使用 this,有时使用 activityname.this,有时当安卓需要传递context时我会使用 getApplicationContext()

2个回答

10
  • this 指向当前对象。在这种情况下,是一个 Activity 对象。
  • ActivityName.this 也指向当前的 Activity 对象,在使用动态内部类(例如实例化新的 onClickListener() {})时使用它。
  • getApplicationContext() 获取整个应用程序的 Context 引用。 Activity 是一个 Context 子类,但某些方面可能会在应用程序上下文和 Activity 之间有所不同。不过大多数情况下,使用 Activity 作为上下文就可以了,我还没有编写需要 getApplicationContext() 的代码。

0

this - 当您想引用当前对象时使用。例如,当您设置一个新类并希望声明私有变量的初始值时,您可以这样做:

public class HelloWorld {
    private String messageToPrint;
    public HelloWorld(String message) {
        this.messageToPrint = message;
    }
}

getApplicationContext() - 返回当前进程中单个全局应用程序对象的上下文。某些类无法调用此方法,而且我从未使用过它。如果我需要获取所在活动的上下文,则会使用:

Context con = getContext();

而且我永远不会使用getApplicationContext(); 并将其强制转换为您的应用程序类,因为您不能保证它会匹配。

另一个我不太确定^^


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接