android - OnCreate 未在 Activity 上调用

标签 android android-activity oncreate

我创建了 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() {
    }
}

最后我创建了那些母 Activity 的实现:

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)

关于android - OnCreate 未在 Activity 上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29871235/

相关文章:

java - Android - 为什么 getResources().getStringArray 返回的字符串不能在 if 子句中使用?

android: 使用 SimpleAdapter 更新 ListView

android - 如何将值从一个 Activity 传递到上一个 Activity

AndroidRuntimeException : requestFeature() must be called before adding content exclusive to Honeycomb 3. 1 - 3.2.1

android - 如何在 onCreate 中获取图像的 x 和 y 位置?

java - Android:没有 onCreate() 方法的服务类

java - 安卓 Volley : Supported status codes issue

java - 如何在应用程序加载时在 ListView 上显示从 Firebase 实时数据库检索的内容

java - boolean 表达式不起作用

java - 无法实例化指南针 Activity 的 Activity