【问题标题】:Android : In onActivityResult() why do we have a intent as parameter ?Android:在 onActivityResult() 为什么我们有一个意图作为参数?
【发布时间】:2014-02-22 05:15:48
【问题描述】:

在 onActivityResult() 为什么我们有一个意图作为参数?
如果是从一个活动向另一个活动发送数据的情况,不能通过捆绑发送数据吗?

帮帮我!!

【问题讨论】:

标签: android android-intent onactivityresult


【解决方案1】:

文件说,

Intent 提供了一种在不同应用程序中的代码之间执行后期运行时绑定的工具。它最重要的用途是在活动的启动中,它可以被认为是活动之间的粘合剂。它基本上是一种被动数据结构,包含对要执行的操作的抽象描述。

意图用于Activity的转换。
例如,Intent 从 Activity_A 调用 Activity_B 时使用。
此外,它用于从 B 到 A 的返回。仅此而已。

【讨论】:

    【解决方案2】:

    Intent 用于在调用ActivityonActivityResult(int, int, Intent) 方法中接收数据。而且,是的,Bundle 可以是这个Intent 的一部分。

    【讨论】:

    • 我的问题是为什么intent是作为参数发送的,为什么不能在参数列表中intent的地方发送bundle来发送数据?
    【解决方案3】:

    Intent 视为您可以在android 组件(Activity、BroadcastReceiver、Service、ContentProvider)之间发送到整个android 系统的消息。

    并且这个 Intent (Message) 需要在里面有一些内容,并将Bundle 视为您要发送给其他组件的 Message 的内容。

    希望有帮助

    【讨论】:

      【解决方案4】:

      每当我们通过从当前活动调用 startActivityForResult() 来启动任何结果活动时,启动的活动必须返回一些响应,并且该响应将在意图对象中扭曲。

      是的,您可以这样做,但是当您的应用程序变大时会很复杂,这意味着您大量使用 Bundle,

      一个缺点是更多地使用 Bundle 它将具有键值对,因此它可能会通过其他活动意外更改您的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-14
        • 2015-11-21
        • 2017-04-06
        • 2013-05-17
        • 2015-10-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多