我在Android上是一个菜鸟,我下载了一些源代码,试图帮助我学习一点。当我打开代码时,我注意到源代码的Src文件夹中包含的许多.Java文件都没有onCreate()方法。我总是假设要运行.Java类,它必须有一个onCreate()方法。
所以......所有的.Java文件都是一次编译运行的吗?!
答案 0 :(得分:0)
.java文件不必始终具有onCreate()方法。只有Activity,Service,BroadcastReceiver等Android组件在生命周期中包含这个onCreate()方法。
像.java这样的普通库只能有公共类和有用的方法声明,所以这些.java文件不需要声明onCreate()方法或main()。
您在项目中看到的.java文件是正常的.java文件,它可能只包含常量代码或库类/方法。
答案 1 :(得分:0)
有帮助,彻底:
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(),你可以使用它来平方int。成员变量myNewClass.x(2)和myNewClass.y(4)。