Android Intent 和回调

标签 android callback android-intent

我正在阅读 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/

相关文章:

android - 如何使用 Intent 共享将 gif 图像共享到可用的应用程序?

java - 为什么 Intent 需要上下文?

java - 挂起线程会产生任何变化吗?

Java许可证不能用于商业用途?

unit-testing - JUnit 失败回调/方法

java - 如何在不启动新布局的情况下从图像按钮启动新 Activity ?

java - 如何在 OncreateMethod 中同时使用 AppCompatActivity 和 Activity 类

回调中的 Java RMI 超时

javascript - 将附加参数传递给事件回调函数

android - 无法为 Wear OS 应用导入 com.google.android.wearable.intent.RemoteIntent