我了解什么是上下文,以及为什么需要它,但是为什么需要它来启动活动,为什么不能仅通过静态加载它们或调用其构造函数来完成它。
答案 0 :(得分:2)
为什么我不能创建和启动这样的活动:
ActivityToLaunch activity = new ActivityToLaunch()
简短答案:因为您没有Activity
。
也就是说,Activity
是由Android框架管理的特殊组件,但是允许您以预定义方法(例如onCreate()
,onResume()
等)添加应用程序逻辑,稍后由系统调用。
...
想象一下,您想在应用程序中使用第三方应用程序,例如默认的文件管理器,以允许用户从SD卡中选择文件。显然,您将无法执行以下操作:
FileManager manager = new FileManager()
因为在您的应用程序代码中无法访问FileManager类(或任何其他第三方应用程序的类),所以...希望您已经看到这种方法的局限性。
这就是为什么Android允许我们创建一个Intent
的原因,其中给出了有关Activity
的元数据,并将其传递给startActivity(...)
,然后系统负责创建启动的活动。
这只是一个例子,可以肯定的是,Android之所以被设计成这样,还有其他原因。