如何在Java中选择正确的获取相关上下文的方式?

How to choose the correct way to get relevant context in Java?

我最近开始使用 java,我正在尝试了解 "Context" 到底是什么,以及如何正确使用它。

public AdapterView.OnItemClickListener selectDevice = new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

            String info = ((TextView) view).getText().toString();
            String adress = info.substring(info.length()-17);
            Intent comIntent = new Intent(MainActivity.this, Communication.class); //WHY???


        }
    };

对于这个例子和 Intent 争论,我们为什么不使用 "getContext()" 或 "getApplicationContext" 或者只是 "this"?

调用 getContext()getApplicationContext()this.getContext() 相同,对吗? this 在你所在的位置给出一个对象 class。所以当你能够调用 getContext() 时,这意味着你在 class 中,它扩展了 Context class 和具有 getContext() 功能。
例如,您可以从 Activity 调用 getContext(),因为它具有该功能。 但在这种情况下,您处于 OnItemClickListener class。而那个 class 没有函数 getContext()。您必须在具有 getContext() 功能的 class 中。

I'm trying to understand what exactly "Context" is

What is 'Context' on Android?

why don't we use "getContext()" or "getApplicationContext" or just "this"?

因为this没有引用匿名类中的Activity。 看这里 Access "this" from Java anonymous class