为什么 Toast 需要 Context?

Why does Toast need Context?

public static Toast makeText( Context context, int resId, int duration)

如上代码,需要Context才能生成Toast。 各种资源给出的解释是 Toast class 需要 Context 才能找到和使用字符串的资源 ID。我不明白为什么会这样。 Context 如何帮助查找资源?

资源 ID 是特定于上下文的。不同的应用程序有不同的上下文,这意味着它们可能导致不同的资源。

回答这部分问题

How does Context help in finding resource ?

从上下文 documentation,存在访问应用程序特定资源的上下文

Interface to global information about an application environment. ... It allows access to application-specific resources and classes,...

所以上下文 class 包含一个 method getResource() 其中

Return a Resources instance for your application's package.