OnCreate 未在 Activity 上调用
Posted
技术标签:
【中文标题】OnCreate 未在 Activity 上调用【英文标题】:OnCreate not called on Activity 【发布时间】:2015-07-04 11:01:46 【问题描述】:我创建了AbstractActivity
和AbstractFormActivity
来删除一些样板代码,它们的内容可能与问题无关,但我还是会发布它,也许我误解了一些东西,它们是:
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
方法没有被调用。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:您当前使用的onCreate()
版本已添加到android 21。您应该改用以下版本:
protected void onCreate (Bundle savedInstanceState)
【讨论】:
帮助很大。感谢您睁开眼睛 :) 我以快速的方式添加了 onCreate,但没有注意到我添加了 API 21 中的那个。非常感谢! :)【参考方案2】:我也遇到了同样的问题。 几个小时后,我发现我的错误,而不是 (savedInstanceState: Bundle, persistentState: PersistableBundle) 函数必须覆盖下面的函数。
override fun onCreate(savedInstanceState: Bundle?)
super.onCreate(savedInstanceState)
【讨论】:
以上是关于OnCreate 未在 Activity 上调用的主要内容,如果未能解决你的问题,请参考以下文章
多次调用“activity.onCreate()”方法是不是正常
为啥说安卓activity的onCreate()方法 只调用一次
创建 Activity 对象时是不是调用 onCreate?
AndroidX 迁移后,ListView 未在 OnCreate/OnStart 上显示任何数据