java - android onCreate( bundle 保存实例状态)

标签 java android oncreate

我试图通过 Intent 将对象传递给 Activity ,并且在调试时,我注意到显然我什至从未进入 Activity 的 onCreate() 方法。即使 Activity 启动,我已经有了布局和所有内容,但我没有机会进行调试,因为永远不会到达 onCreate() 方法内的断点。这怎么可能,我在这里不明白什么?帮助:)

    listView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {

        @Override
        public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {


            String selection = itemsArray[groupPosition][childPosition];
            Class calc = null;

            switch (selection) {
                case "Calc1":
                    calc = Calc1.class;
                    break;
                case "Calc2":
                    calc = Calc2.class;
                    break;
            }

            Intent intent = new Intent(Main.this, calc);
            intent.putExtra("controller", getController());
            startActivity(intent);

            return false;
        }
    });

该 Activity 在 OnChildClick 事件上启动,我尝试传递的对象是 Controller (由 getController() 方法返回)

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.calc1);

    controller = (Controller) getIntent().getSerializableExtra("controller");
    setController(controller);

    editA = (EditText) findViewById(R.id.editA);
    editB = (EditText) findViewById(R.id.editB);
}

这是onCreate(),我在setContentView()处设置了断点,就像我说的,显然我从来没有到达那里......我觉得我这里缺少一些东西。

顺便说一句。我是 Android 新手;)

感谢您的阅读!

最佳答案

Android Activity 生命周期一开始可能有点棘手。下面的图表很好地解释了这一点:https://github.com/xxv/android-lifecycle您可以在此处获取有关所有 Activity 的更多详细信息:https://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle)

Activity 可能会直接进入 onResume 或 onRestart,但如果您想确定(这是了解更多有关 Activity 生命周期的好方法!),请将一些日志放入一堆不同的 Activity 中方法(onCreate、onPause、onRestart 等)。然后尝试在不同的 Activity 之间导航、终止应用程序、按主页按钮、锁定屏幕、旋转屏幕等。您会注意到流程并不完全相同,它将帮助您找出哪里将您的代码放入您的特定用例中。希望这有帮助!

关于java - android onCreate( bundle 保存实例状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043529/

相关文章:

android - 为什么需要检查 OnCreate 内部的 savedInstanceState?

android - 仅在第一个 OnCreate 上运行代码

Android:在创建时设置随机颜色背景

java - 使用可变字符串命名对象

java - Android: finish() Activity 运行时异常

java - 无法在图形布局中打开 XML 文件 : FakeAdapter cannot be cast to BaseAdapter

java - iPhone 和 Android 网络

java - ImageIO.read(getClass().getResource ("imagepath")) 中 getclass() 的实际用途是什么

java - 如何将列表变量传递给构造函数/方法

java - Bean创建异常