创建 Activity 对象时是不是调用 onCreate?
Posted
技术标签:
【中文标题】创建 Activity 对象时是不是调用 onCreate?【英文标题】:Is onCreate called when an Activity object is created?创建 Activity 对象时是否调用 onCreate? 【发布时间】:2011-09-19 18:11:25 【问题描述】:在创建扩展活动的类对象时是否调用 onCreate?还是仅在活动启动时调用它,例如通过 startActivity(...)。
【问题讨论】:
【参考方案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,或使用回调模式在两个活动之间进行通信。我认为你应该关注这个线程:***.com/questions/19666572/…. 我明白这没什么用,但是如果我们来自OOPs世界,我们不是被教导了吗?我想我从来没有读过 OOPs 概念中的回调方法,所以如果我是 android 的新手,说有 OOPs 背景,那么有什么直观的方法可以让我直观地理解这些概念吗?以上是关于创建 Activity 对象时是不是调用 onCreate?的主要内容,如果未能解决你的问题,请参考以下文章