我正在阅读 Android 教程,有关 Intent/Activity 交互的一些内容让我感到困惑。在 Javascript 中,每当有 ajax 调用时,我们都会定义如何与 ajax 调用一起处理结果,并且我们可以在整个应用程序生命周期中对不同的 ajax 调用使用不同的回调。在android中,以 Intent 启动一个 Activity 并处理传回的结果是解耦的,至少教程中是这样完成的,并且只有一个入口点来处理结果,因此很难即时执行处理结果不会弄乱主入口点。我可以很容易地想象出一些复杂的逻辑,可能会使主入口点内的切换变得一团糟。这是一个基本的 Android 架构问题,还是有另一种方法可以使用实际回调而不是单个入口点中的 switch 语句来执行操作?
最佳答案
确实,您只能在一个位置接收 Activity 已完成的响应。如果您可以为每个函数定义一个回调函数,那就太好了,但这不是它的工作原理。
但根据我的经验,您很少会在一项 Activity 中拥有如此多的不同目的地,以至于难以管理。通常,每个页面仅指向您可能关心从中获取结果的一两个其他页面。
您可以执行以下操作来清晰地分离每种情况的逻辑:
void onActivityResult(int requestCode, ....) {
switch(requestCode) {
case Activity1:
onActivity1Result(...);
break;
case Activity2:
onActivity2Result(...);
break;
}
}
关于Android Intent 和回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869423/