1
   @Override
                public void onClick(View view) {
                    // Launching News Feed Screen
                    Intent i = new Intent(getApplicationContext(), Profile.class);
                    startActivity(i);
                }
            });

使用此代码有什么区别,与此 doe 相比,它对程序有什么区别

Intent i = new Intent(CurrentActivityName.this, NextActivityName.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
4

1 回答 1

1

第一个用于getApplicationContext()启动意图。应用程序上下文附加到应用程序的生命周期,并且在应用程序的整个生命周期中始终相同。因此,如果您使用 Toast,则可以使用应用程序上下文甚至活动上下文(两者),因为可以从应用程序中的任何位置引发 Toast,并且不附加到窗口。

第二个使用Activity上下文。Activity 上下文附加到 Activity 的生命周期,如果 Activity 的 onDestroy 被引发,则可以将其销毁。如果要启动一个新活动,则必须在其 Intent 中使用活动的上下文,以便新启动的活动连接到当前活动(在活动堆栈方面)。

因此,每当您需要操作视图时,请使用 Activity-Context,否则 Application-Context 就足够了。

来源这个答案在不同之处以及何时使用 getApplication()、getApplicationContext()、getBaseContext() 和 someClass.this问题。

此外,阅读上面的一些链接会有所帮助:

获取上下文的各种方法有什么区别?

getApplicationContext()、getBaseContext()、getApplication()、getParent()

于 2013-08-08T01:38:21.383 回答