【问题标题】:Does startActivityForResult starting a new Activity notify the calling Activity when the started Activity finishes?startActivityForResult 是否会在启动的 Activity 完成时通知调用的 Activity?
【发布时间】:2012-12-17 16:04:22
【问题描述】:

我在那里查看一个 Android 问题,询问以下陈述是否属实..

startActivityForResult 用于从您的Activity 类启动新的Activity 时,您的Activity 类会在新的Activity 完成时收到通知。

我的观点是,startActivityForResult 的全部意义在于通知调用的 Activity 它启动的 Activity 已经完成,并允许在需要时返回数据。

我对 Android 比较陌生,我想弄清楚我的事实。

我们将不胜感激。

干杯

【问题讨论】:

    标签: java android android-activity


    【解决方案1】:

    当 startActivityForResult 用于从您的 活动类,然后您的活动类会在新的 活动完成。

    这是真的,onActivityResult (int requestCode, int resultCode, Intent data) 在活动中被调用,它为结果启动了其他活动 - 覆盖它以处理结果

    我的意见是,startActivityForResult 的重点是 通知调用 Activity 它启动的 Activity 有 完成并允许根据需要返回数据。

    这也是真的,您可以通过调用setResult (int resultCode, Intent data) 在调用结果的活动中设置结果 - 传递包含额外数据的 Intent 数据 - 然后您可以从 onActivityResult 中的 Intent 数据中检索它。

    【讨论】:

    • 干杯,感谢您的确认!
    【解决方案2】:

    为了理智,让我们有Activity AActivity B

    ActivityAActivityB 开头,startActivityForResult

    ActivityB 完成任务并完成。 onActivityResultActivityA 调用

    【讨论】:

      【解决方案3】:

      当您希望被调用的活动向调用活动返回结果时,您可以使用 startActivityForResult。 调用活动必须实现 onActivityResult 才能获得有关结果的通知。 当被调用的活动完成其工作时,它会调用 setResult。 这只是在活动之间共享价值的一种方式,与通知系统无关。 我希望我很清楚。

      【讨论】:

      • 所以您不相信最初的陈述是正确的,因为onActivityResult 是一个可选方法,需要实现任何类型的“通知”才能发生?
      • 我认为你只使用它是因为你想得到通知意味着这是一个真实的陈述
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多