Dou*_*ass 4 java android class object android-studio
我基本上是在询问这两种方法之间的区别:
public class myClass extends AppCompatActivity {
private objectType mObject = new objectType();
@Override
protected void onCreate(Bundle savedInstanceState) {
//do stuff with mObject
Run Code Online (Sandbox Code Playgroud)
和
public class myClass extends AppCompatActivity {
private objectType mObject;
@Override
protected void onCreate(Bundle savedInstanceState) {
mObject = new ObjectType();
Run Code Online (Sandbox Code Playgroud)
我希望我说得够清楚了。我很难理解什么时候我们想要选择一个而不是另一个。
从功能上来说,没什么。
第一个将在创建 Activity 对象时创建(new myClass()被调用)。Android 系统会在创建过程中的某个时间点执行此操作。
第二个将在系统最终调用时创建onCreate()。
如果您有一个Context在构造函数中需要 a 的对象,那么问题就来了。例如,您可以这样做:
public class myClass extends AppCompatActivity {
private objectType object = new objectType(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
//do stuff with object
Run Code Online (Sandbox Code Playgroud)
并且应用程序会突然崩溃,因为您很可能会尝试从Context尚不存在的资源中提取资源。(请记住,此时尚未创建 Activity)。
因此,如果您的对象确实必须使用Context,那么您必须在onCreate被调用时或之后创建它。
| 归档时间: |
|
| 查看次数: |
1075 次 |
| 最近记录: |