当前位置: 首页 > 知识库问答 >
问题:

getApplication()、getApplicationContext()、getBaseContext()和SomeClass的区别和使用时间

施权
2023-03-14
Toast.makeText(LoginActivity.this, "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplication(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), "LogIn successful", Toast.LENGTH_SHORT).show();
Toast.makeText(getBaseContext(), "LogIn successful", Toast.LENGTH_SHORT).show();

意思相同:

Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
Intent intent = new Intent(MenuPagina., LoginActivity.class);
Intent intent = new Intent(getBaseContext(), LoginActivity.class);
Intent intent = new Intent(getApplication(), LoginActivity.class);

共有1个答案

甄越
2023-03-14

Toast和Intent都需要参考上下文。以及getApplication、getApplicationContext、LoginActivity.this和getBaseContext,它们都提供对上下文的引用。

现在混淆的是不同上下文及其特定用法的声明。为了简单起见,您应该计算Android框架中可用的两种上下文类型。

  1. 应用程序上下文
  2. 活动上下文

getapplication()虽然引用了应用程序对象,但应用程序类扩展了上下文类,因此可以用来提供应用程序上下文。

getApplicationContext()提供应用程序上下文。

getBaseContext()提供活动上下文。

 类似资料: