gpt4 book ai didi

java - Intent startActivity(i) 上的 Intent 标志;

转载 作者:行者123 更新时间:2023-11-30 03:26:40 25 4
gpt4 key购买 nike

   @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);

最佳答案

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

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

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

来源:thisdifference and when to use getApplication(), getApplicationContext(), getBaseContext() and someClass.this 回答问题。

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

What's the difference between the various methods to get a Context?

getApplicationContext(), getBaseContext(), getApplication(), getParent()

关于java - Intent startActivity(i) 上的 Intent 标志;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18116533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com