【问题标题】:Android - is onStart() called immediately after onCreate()?Android - 在 onCreate() 之后立即调用 onStart() 吗?
【发布时间】:2016-11-26 23:32:18
【问题描述】:

如果我有两个活动 A 和 B。并且我创建了一个从活动 A 的 onCreate() 启动活动 B 的意图,什么时候会调用活动 A 的 onStart()?

例如,假设我有以下内容:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = new Intent(this, B.class);
    startActivityForResult(intent, REQUEST_CONNECT_DEVICE);
}

这些代码行执行完毕后会立即调用该活动的 onStart() 方法还是先创建活动 B?

【问题讨论】:

  • 你可以通过添加一些日志来轻松找到。
  • Activity A 在被 Activity B 立即推送到后台时是否还有机会启动?如果活动 B 是半透明的怎么办?有很多案例。以您独立于具体事件顺序的方式构建它。不要制造人为的问题。

标签: android android-activity oncreate onstart


【解决方案1】:

工作流程

基本的 Android Activity 生命周期

应用打开时:onCreated() > onStart() > onResume()

当应用关闭时:onPause()

以下是您的工作流程

操作 1: Activity A 打开

  • 调用 Activity A 的 onCreate()

操作 2:活动 B 开始

  • 调用Activity A的onStart()
  • 调用Activity A的onResume()
  • 调用 Activity A 的 onPause()

  • 调用活动 B 的 onCreate()

  • 调用Activity B的onStart()
  • 调用Activity B的onResume()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多