Activity 上未调用 OnCreate
OnCreate not called on Activity
我已经创建了 AbstractActivity
和一个 AbstractFormActivity
来删除一些样板代码,它们的内容可能与问题无关,但我还是 post 它,也许我误解了一些东西,他们在那里:
public abstract class AbstractActivity extends ActionBarActivity {
protected ObjectGraph graph;
@Inject
public Bus bus;
@Inject
public App app;
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(getLayout());
setupInjection();
}
public void setupInjection() {
graph = ((App) getApplication()).createScopedGraph(getModule());
graph.inject(this);
bus.register(this);
ButterKnife.inject(this);
}
protected abstract Object getModule();
protected abstract int getLayout();
}
和
public abstract class AbstractFormActivity<T extends EntidadeBase> extends AbstractActivity implements Form<T> {
protected T entity;
protected Map<View, Boolean> formValidations;
protected AbstractFormActivity() {
formValidations = new HashMap<View, Boolean>();
}
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}
protected boolean passedValidations() {
for (View key : formValidations.keySet()) {
if (!formValidations.get(key)) {
return false;
}
}
return true;
}
protected void validateAndSolidify() {
if (passedValidations()) {
solidify();
}
entity = null;
}
@Override
public void validateMoreComplexFields() {
}
}
最后我创建了那些母活动的实现:
public class MercadoriaFormActivity extends AbstractFormActivity<Mercadoria> {
...
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}
...
}
我的问题是 onCreate
方法没有被调用。
非常感谢任何帮助。
onCreate()
您当前使用的版本已添加到 Android 21。您应该改用以下版本:
protected void onCreate (Bundle savedInstanceState)
我也遇到了同样的问题。
几个小时后,我发现我的错误,而不是 (savedInstanceState: Bundle, persistentState: PersistableBundle) 函数必须覆盖下面的函数。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
我已经创建了 AbstractActivity
和一个 AbstractFormActivity
来删除一些样板代码,它们的内容可能与问题无关,但我还是 post 它,也许我误解了一些东西,他们在那里:
public abstract class AbstractActivity extends ActionBarActivity {
protected ObjectGraph graph;
@Inject
public Bus bus;
@Inject
public App app;
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(getLayout());
setupInjection();
}
public void setupInjection() {
graph = ((App) getApplication()).createScopedGraph(getModule());
graph.inject(this);
bus.register(this);
ButterKnife.inject(this);
}
protected abstract Object getModule();
protected abstract int getLayout();
}
和
public abstract class AbstractFormActivity<T extends EntidadeBase> extends AbstractActivity implements Form<T> {
protected T entity;
protected Map<View, Boolean> formValidations;
protected AbstractFormActivity() {
formValidations = new HashMap<View, Boolean>();
}
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}
protected boolean passedValidations() {
for (View key : formValidations.keySet()) {
if (!formValidations.get(key)) {
return false;
}
}
return true;
}
protected void validateAndSolidify() {
if (passedValidations()) {
solidify();
}
entity = null;
}
@Override
public void validateMoreComplexFields() {
}
}
最后我创建了那些母活动的实现:
public class MercadoriaFormActivity extends AbstractFormActivity<Mercadoria> {
...
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}
...
}
我的问题是 onCreate
方法没有被调用。
非常感谢任何帮助。
onCreate()
您当前使用的版本已添加到 Android 21。您应该改用以下版本:
protected void onCreate (Bundle savedInstanceState)
我也遇到了同样的问题。 几个小时后,我发现我的错误,而不是 (savedInstanceState: Bundle, persistentState: PersistableBundle) 函数必须覆盖下面的函数。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}