为什么需要Context才能在Android中启动活动

时间:2018-08-16 19:26:35

标签: android android-activity android-context

我了解什么是上下文,以及为什么需要它,但是为什么需要它来启动活动,为什么不能仅通过静态加载它们或调用其构造函数来完成它。

1 个答案:

答案 0 :(得分:2)

  

为什么我不能创建和启动这样的活动:   ActivityToLaunch activity = new ActivityToLaunch()

简短答案:因为您没有Activity

也就是说,Activity是由Android框架管理的特殊组件,但是允许您以预定义方法(例如onCreate()onResume()等)添加应用程序逻辑,稍后由系统调用。

...

想象一下,您想在应用程序中使用第三方应用程序,例如默认的文件管理器,以允许用户从SD卡中选择文件。显然,您将无法执行以下操作:

  FileManager manager = new FileManager()

因为在您的应用程序代码中无法访问FileManager类(或任何其他第三方应用程序的类),所以...希望您已经看到这种方法的局限性。 这就是为什么Android允许我们创建一个Intent的原因,其中给出了有关Activity的元数据,并将其传递给startActivity(...),然后系统负责创建启动的活动。

这只是一个例子,可以肯定的是,Android之所以被设计成这样,还有其他原因。