Android 为什么我们需要向新活动/服务过渡的意向?

Android 为什么我们需要向新活动/服务过渡的意向?,android,android-intent,android-activity,Android,Android Intent,Android Activity,在一次采访中,我被问到以下问题: 为什么我们需要开始新的活动或服务的意向?或者,我们为什么不创建一个新对象并调用Activity_obj.onCreate(..)来启动活动呢;在上面 我可以计算意图的好处,比如传输数据和针对适当活动的意图过滤器,但除了我不能给出满意的答案之外 它是否与活动的生命周期回调处理有关 Android启动活动的方式是通过大量的Java配置。我觉得如果我们要做所有的脏活配置和启动活动,那将是一个大烂摊子。通过这种方式,我们可以进行“系统调用”,只需将其交给Android一

在一次采访中,我被问到以下问题:

为什么我们需要开始新的活动或服务的意向?或者,我们为什么不创建一个新对象并调用Activity_obj.onCreate(..)来启动活动呢;在上面

我可以计算意图的好处,比如传输数据和针对适当活动的意图过滤器,但除了我不能给出满意的答案之外


它是否与活动的生命周期回调处理有关

Android启动活动的方式是通过大量的Java配置。我觉得如果我们要做所有的脏活配置和启动活动,那将是一个大烂摊子。通过这种方式,我们可以进行“系统调用”,只需将其交给Android一点,并要求它做一些事情


从安全角度来看,这也意味着每个活动都是由Android启动的。这意味着您无法启动Whatsapp,无法共享一些文本,也无法对其进行完全的根控制,因为您启动了它。这是非常有益的,Android甚至为您提供了一种与您自己的活动交互的方式,如果需要的话,可以在同一流程中进行通信。这种沙盒方法是帮助平台安全的要素之一。

Android启动活动的方式是通过大量的Java配置。我觉得如果我们要做所有的脏活配置和启动活动,那将是一个大烂摊子。通过这种方式,我们可以进行“系统调用”,只需将其交给Android一点,并要求它做一些事情


从安全角度来看,这也意味着每个活动都是由Android启动的。这意味着您无法启动Whatsapp,无法共享一些文本,也无法对其进行完全的根控制,因为您启动了它。这是非常有益的,Android甚至为您提供了一种与您自己的活动交互的方式,如果需要的话,可以在同一流程中进行通信。这种沙盒方法是帮助平台安全的要素之一。

主要原因是,这为Android提供了一种完全定制用户体验的简便方法。通过使用“隐式意图”,您的应用程序可以告诉Android,它应该找到能够对特定类型的数据执行特定类型操作的组件(例如,“查看URL”或“打开PDF文档”或“撰写电子邮件”)。您的应用程序不需要知道要启动什么组件来执行此操作。事实上,用户的设备上可能安装了几个组件,可以执行所需的操作,因此Android可以询问用户应该使用哪个组件来执行所需的操作。这使得为您设备上的几乎所有应用程序提供插入式替换变得非常容易


当然,还有25种其他方法可以实现这一点。最初的开发者选择了
Intent
机制。

主要原因是,这为Android提供了一种完全定制用户体验的简便方法。通过使用“隐式意图”,您的应用程序可以告诉Android,它应该找到能够对特定类型的数据执行特定类型操作的组件(例如,“查看URL”或“打开PDF文档”或“撰写电子邮件”)。您的应用程序不需要知道要启动什么组件来执行此操作。事实上,用户的设备上可能安装了几个组件,可以执行所需的操作,因此Android可以询问用户应该使用哪个组件来执行所需的操作。这使得为您设备上的几乎所有应用程序提供插入式替换变得非常容易


当然,还有25种其他方法可以实现这一点。最初的开发人员选择了
Intent
机制。

是的,它与生命周期密切相关。是的,它与生命周期密切相关。感谢Roaster,这给了我一个开始深入探讨的基础。第一段不正确。垃圾收集器仅被阻止清理由其他(活动)对象引用的对象。在您描述的案例中,如果
ActivityA
包含对
ActivityB
的引用,则不会阻止垃圾收集器清理
ActivityA
。感谢Roaster,这为我进一步探讨这一问题提供了基础。第一段不正确。垃圾收集器仅被阻止清理由其他(活动)对象引用的对象。在您描述的案例中,如果
ActivityA
持有对
ActivityB
的引用,那么垃圾收集器将无法清理
ActivityA
。哈哈!我同意最后一行。我也是这么想的。但我猜意图确实通过意图过滤器处理动作,也许还通过活动的生命周期。还在研究生命周期部分。哈哈!我同意最后一行。我也是这么想的。但我猜意图确实通过意图过滤器处理动作,也许还通过活动的生命周期。仍在研究生命周期部分。