我一直在想,因为我是Android的新手,如果在调用onCreate()之前在类的字段声明中初始化变量(如Context对象)是不好的做法。我正在粘贴我正在谈论的内容。看看我如何以及何时初始化Context对象。与onCreate相比,这实例化的时间是什么?我可以相信每次调用此类时都要初始化它吗?
答案 0 :(得分:0)
在调用context
之前,您无法使用onCreate
。它不会完全初始化。尽管如此,您可以将其保存在变量中。
真正的问题是 - 为什么你这样做呢?除非它是静态的,否则没有理由在类变量中保存它的副本,因为你总是可以像这样引用它。你永远不应该保存静态Context
。
答案 1 :(得分:-1)
当我们创建Activity
时,我们应该调用onCreate()
方法。我们应该在oncreate
方法中实例化。
在您的代码中尝试此操作。
public class MainActivity extends AppCompatActivity {
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
}
}
您可以查看this
答案 2 :(得分:-1)
初始化onCreate()内的Context,不会失败。每当你打电话给这个班级时,它都会初始化。