为什么我们不能使用new关键字创建活动?

Tus*_*aha 2 java android android-activity

为什么我们必须使用intent启动一个活动

为什么我们不能使用Activity a = new Activity启动它?

我尝试在Android开发人员中搜索,但没有得到任何答案

Gab*_*han 11

你可以,但它不会完全初始化.Activity上有一系列函数需要按正确的顺序调用才能正确初始化它,并且框架采取了一系列步骤来显示活动.调用startActivity将采用这些步骤并以正确的顺序调用Activity生命周期函数.所以没有理由使用新的.

再看看它 - 让我们说你要做Activity a = new Activity().操作系统如何知道你这样做,并知道它应该显示那个Activity?怎么知道Activity现在应该进入前台呢?它不会.需要告知的是,新活动已经启动.这就是startAcctivity存在的原因.既然你必须要调用它,为什么不把它作为工厂方法,所以初始化和启动是一步?