I've created AbstractActivity
and an AbstractFormActivity
to rid of some boilerplate code, their content may be irrelevant to the question, but I will post it anyway, maybe I misunterstood something so, there they are:
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();
}
and
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() {
}
}
finally I've created an Implementation of those mother Activities:
public class MercadoriaFormActivity extends AbstractFormActivity<Mercadoria> {
...
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
}
...
}
My problem is that the onCreate
method is not called.
Any help is highly appreciated.
OnCreate is only called once.
OnCreate will only be called one time for each lifetime of the Activity. However, there are a number of situations that can cause your activity to be killed and brought back to life. Thus, onCreate will be called again.
As onCreate() of an Activity is called only once, this is the point where most initialization should go: calling setContentView(int) to inflate the activity's UI, using findViewById to programmatically interact with widgets in the UI, calling managedQuery(android.
onCreate() It is called when the activity is first created.
onCreate()
version you are currently using is added in Android 21. You should use version below instead:
protected void onCreate (Bundle savedInstanceState)
I have also faced the same issue. After a couple of hours, I found my mistake, instead on (savedInstanceState: Bundle, persistentState: PersistableBundle) function has to override the below one.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With