【发布时间】:2011-02-02 00:06:03
【问题描述】:
我正在浏览 android 教程,而有关意图/活动交互的一些内容让我感到困惑。在 Javascript 中,每当有 ajax 调用时,我们都会定义结果应如何与 ajax 调用一起处理,并且我们可以在整个应用程序生命周期中为不同的 ajax 调用使用不同的回调。在android中,以意图启动一个活动并处理传回的结果是解耦的,至少在教程中是这样完成的,并且只有一个入口点来处理结果,因此很难即时执行处理结果而不弄乱主要入口点。我可以很容易地想象一些复杂的逻辑可能会使主入口点内部的切换变得一团糟。这是一个基本的 android 架构,还是有另一种方法可以使用实际的回调而不是单个入口点中的 switch 语句来做事?
【问题讨论】:
-
@Falmarri:真的吗?我想所有那些说人们通过比喻和比较来学习的认知科学家一定是白白赚了几百万。我以函数式编程,并且它在任何语言中都是干净的风格,所以除非你对我的问题有实际答案,否则请为其他人保存毒液。
-
您能否更具体地说明您认为哪些元素很麻烦?此外,如果您愿意,任何 switch 语句都可以轻松转换为哈希表查找和回调调度。
-
@adamp 我认为繁琐的是根本需要 switch 语句。这类似于
onClickListener。我个人发现为每个可点击项目提供一个使用内部类的回调函数比为所有可点击项目使用一个 onClickListener 并使用 switch 语句来查看哪个项目被点击要干净得多。不过,这有点风格/个人喜好。 -
@davidk01 不,这对于活动结果是不可能的。仅适用于点击侦听器。请参阅下面的回答,了解我对活动结果的最佳建议。
-
@Falmarri 回调函数的概念相当普遍,当然不是 javascript 独有的。它的实现可能因语言而异,但几乎所有语言(包括 Java)都有某种实现方式。
标签: android callback android-intent