我是 Android 的菜鸟,我下载了一些源代码来帮助我学习一点。当我打开代码时,我注意到源代码的 Src 文件夹中包含的许多 .Java 文件没有 onCreate() 方法。我一直认为要让 .Java 类运行,它必须有一个 onCreate() 方法。
所以...所有的 .Java 文件都编译和运行一次吗?!
我是 Android 的菜鸟,我下载了一些源代码来帮助我学习一点。当我打开代码时,我注意到源代码的 Src 文件夹中包含的许多 .Java 文件没有 onCreate() 方法。我一直认为要让 .Java 类运行,它必须有一个 onCreate() 方法。
所以...所有的 .Java 文件都编译和运行一次吗?!
.java 文件不需要总是有 onCreate() 方法。只有像 Activity、Service、BroadcastReceiver 这样的 Android 组件在其生命周期中包含这个 onCreate() 方法。
像 .java 这样的普通库只能具有带有有用方法声明的公共类,因此这些 .java 文件不需要声明 onCreate() 方法或 main()。
您在项目中看到的 .java 文件是普通的 .java 文件,可能只包含常量代码或库类/方法。
有帮助,彻底:
http://developer.android.com/training/basics/activity-lifecycle/index.html
解释其他(Android)Java 类如何工作:
没有 onCreate() 的类通常会有一个构造函数,像这样:
public class MyNewClass {
// We'll leave getters and setters for later.
int x, y;
public MyNewClass(int x, int y){
this.x = x;
this.y = awesomeMethod(y);
}
static public int awesomeMethod(int awesome){
return awesome*awesome;
}
}
因此,当您进行活动时:
public class SadActivity extends Activity {
MyNewClass myNewClass;
@Override
public void onCreate(Bundle b){
super(b);
myNewClass = new MyNewClass(2,2);
}
}
在运行时,MyNewClass 的一个实例(称为 myNewClass)是使用构造函数创建的。它有一个方法 myNewClass.awesomeMethod() 可以用来平方整数。以及成员变量 myNewClass.x (2) 和 myNewClass.y (4)。