iphone - Android Activity/Intent vs. Qt Signal/Slot vs. iPhone ?/?

标签 iphone android qt android-intent signals-slots

我正在尝试研究不同移动平台上对象/组件之间通信的相似性。

在 Android 上,有 Activity/Intent 概念来传递信息,在 Qt 上我们有信号和槽

这里出现的问题:

  1. 将 Activity/Intent 与信号/槽概念进行比较是否合理?在我看来,最重要的区别是粒度级别不同。虽然 Activities/Intents 在“整个屏幕”上运行(更准确地说是 Activity,因为 Activity 不一定代表一个单独的屏幕),而 Signals/Slots 是为较小的对象定义的,例如 Widget(实际上,对于每个类派生自 QObject)。

  2. 考虑到平台独立性,您会说概念在根本上差异太大,还是开发人员可以克服对象通信方面的技术差异并“抽象”应用程序逻辑足以减少移植工作?怎么办?

  3. 在 iOS 上有类似的概念吗?(例如目标-操作机制 - 或者更像是 ObjectiveC 提供的委托(delegate)或通知)。

最佳答案

我只能说说 android 的 Intent 和 iOS 之间的区别 - 从来没有在 QT 中做过任何事情,但我们开始吧:
Intent (至少据我所知)主要用于表示手机状态的变化或改变不同对象的生命周期状态。它们通常不用于更细粒度的内容,例如更改值的通知等。
在 iOS 中,通知系统存在于细粒度和粗粒度信息(又名系统状态甚至模型更改) - 但它的功能完全不同。

我看不出这两种机制有任何直接的相似之处。有了 Androids Intents,我可以开始新的 Activites,如果我真的需要的话,也许可以将一些值传递给另一个 Activity。使用 iOS 通知,我可以将任何类型的值从 A 传递到 B,但必须实现我自己的逻辑,例如在特定通知上启动服务。此外,iOS 中的通知管理比 Android Intents 更加明确。

关于iphone - Android Activity/Intent vs. Qt Signal/Slot vs. iPhone ?/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828644/

相关文章:

Android - 如何为 API-28 使用 startForegroundService() 和 startForeground()?

android - 如何在 Android 中使用我的 OpenCV C++ 代码?

c++ - 是否可以使用自定义图形引擎渲染 Qt QWidgets 和 QML?

c++ - RTSP 获取流数据

ios - iOS 硬件上的(立方体贴图)纹理采样器数量

java - 如何修复错误并向源文件添加功能并保证不会破坏某些应用程序?

iphone - 如何将我的 iPhone Web 应用程序添加到 apple.com/webapps

iphone - iPhone 中的 JSON 响应第二次为空

java - 仅打印数组的元素

android - 任务 ':app:transformClassesWithDesugarForDebug' 执行失败