Java 意向性星图上的意向性标志(i);

Java 意向性星图上的意向性标志(i);,java,android,android-intent,Java,Android,Android Intent,使用此代码有什么区别?与此doe相比,它在程序中的作用有什么区别 @Override public void onClick(View view) { // Launching News Feed Screen Intent i = new Intent(getApplicationContext(), Profile.class); st

使用此代码有什么区别?与此doe相比,它在程序中的作用有什么区别

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

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

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

所以,每当您需要操纵视图时,就选择活动上下文,否则应用程序上下文就足够了

资料来源:对问题的回答

此外,阅读上面的一些链接将有助于:


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

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

所以,每当您需要操纵视图时,就选择活动上下文,否则应用程序上下文就足够了

资料来源:对问题的回答

此外,阅读上面的一些链接将有助于:

阅读会有帮助。阅读会有帮助。
Intent i = new Intent(CurrentActivityName.this, NextActivityName.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);