【问题标题】:Is onCreate called when an Activity object is created?创建 Activity 对象时是否调用 onCreate?
【发布时间】:2011-09-19 18:11:25
【问题描述】:

在创建扩展活动的类对象时是否调用 onCreate?还是仅在活动启动时调用它,例如通过 startActivity(...)。

【问题讨论】:

    标签: android


    【解决方案1】:

    回答您的问题,对于扩展活动的类,如果您尝试通过正常方式( MyActivity ma = new MyActivity(); )实例化该活动,则不会调用 onCreate() 方法。只有当您以意图启动 Activity 时,才会调用该方法。

    【讨论】:

    • 谢谢。回答了我的问题。
    • 调用 recreate() 时会发生什么?
    • 就此而言 MyActivity ma = new MyActivity();这有什么用或意义吗?我认为任何与活动相关的操作都会在通过 Intent 启动活动时发生。
    【解决方案2】:

    根据 developer.android.com,onCreate 在活动启动时被调用。查看详情here

    【讨论】:

      【解决方案3】:

      应用程序中的每个活动都有自己的生命周期。 当一个活动被创建时,onCreate() 函数会被执行一次且只有一次。

      查看Activity Life Cycle

      【讨论】:

        【解决方案4】:

        我认为在 Android 中,你不能这样写:

        AClassThatExtendedAnActivity instance = new AClassThatExtendedAnActivity();
        

        您可以用来启动 Activity 的唯一方法是传递以启动您的 Activity 的意图。

        当你重写方法onCreate(Bundle savedInstanceState);时,实例的创建被封装在super.onCreate(savedInstanceState);上

        问候,

        【讨论】:

        • 但是我们在 OOP 中了解到,访问类的方法的唯一方法是通过类的对象,所以这不是反对吗?请对此有所了解。
        • 我们不调用 onCreate() 方法;当您从意图启动 Activity 时会自动调用它。
        • 我明白,但假设有一个公共方法。 Activity A 中的 methodXYZ() ,我可以从另一个活动中调用此方法,例如 Activity B 在其 onCreate() 中,那么这种模式有什么用处吗?
        • 这种模式没用,应该避免。为了从另一个活动调用公共方法,我认为这取决于在该方法中想要做什么,即您可以使用 startActivityForResult,或使用回调模式在两个活动之间进行通信。我认为你应该关注这个线程:stackoverflow.com/questions/19666572/….
        • 我明白这没什么用,但是如果我们来自OOPs世界,我们不是被教导了吗?我想我从来没有读过 OOPs 概念中的回调方法,所以如果我是 android 的新手,说有 OOPs 背景,那么有什么直观的方法可以让我直观地理解这些概念吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-04
        • 1970-01-01
        • 1970-01-01
        • 2020-04-29
        相关资源
        最近更新 更多