在 Android 应用程序中使用 startActivityForResult

2023-11-30

我写了一个应用程序,其中有一个<intent-filter/>以便其他应用程序可以使用它来启动它startActivityForResult()。当此活动完成时,它创建了一个如下所示的对象:

(申请A)

 public class MyObject implements Serializable {
      private String name;
      private String[] items
 }

并将其设置为结果:

(申请A)

 getIntent().putExtra("Extra_MyObject", myObject);
 setResult(RESULT_OK, getIntent());

因此,接收此意图的第二个活动有一个问题,它如何知道要接收的额外意图的名称 and 我将如何创建收到的对象并将其投射回MyObject这不是这个应用程序的一部分?

(申请B)

  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == MY_REQ_CODE){
        if(resultCode == RESULT_OK){
                 // So here how do I know what the intent data name is i.e. "Extra_MyObject"
                 // and how would I know the structure to cast the object back to a MyObject that isn't part of this project?

        }
    }
}

我会模仿吗MyObject第二个应用程序中的类并将其转换为该类? 或者还有其他选择吗?


你可以使用像这样的库Jackson将对象序列化为 JSON 字符串,然后在另一端反序列化。

它更加灵活,并且如果您决定添加额外的字段,则可以消除传递的数据版本不一致的问题。

此外,这两个应用程序不再需要在同一命名空间中维护一个类,甚至不再需要使用相同的名称来调用它们。

最后一点,您不再需要发布 jar,只需您的文档就足够了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 应用程序中使用 startActivityForResult 的相关文章

随机推荐

  • 安装和卸载硬盘

    如何在 Java 编程语言中挂载和卸载硬盘驱动器 与平台无关 因此不使用运行时执行硬编码命令 答案是 是和否 您无法在 java 中挂载或卸载设备 因为每个操作系统都有自己的方法来执行此操作 但是 您可以提供使用适配器模式作为本机接口的ja
  • 为什么around_filter或after_filter中的redirect_to不起作用?

    如何使redirect to在这些过滤器中起作用 我正在努力改变 def start redirect to index end def end redirect to index end to around filter around d
  • 增强的 for 循环不适用于循环体内的 Scanner

    为什么认为行不通 它只打印零 然而 当我使用带有索引值 i 的普通 for 循环并在循环体内使用 a i 时 它会起作用 问题不在于打印循环 因为它不打印值 即使使用正常的 for 循环也是如此 import java util Scann
  • ASM 库计算出错误的堆栈大小

    我使用 ASM 库生成字节码 方法的 最大堆栈大小 将自动计算 在运行时 我发现这个值 最大堆栈大小 不正确 我的源代码是 ClassWriter cw new ClassWriter ClassWriter COMPUTE MAXS Me
  • 将枚举映射到类型

    我正在尝试使用映射类型在枚举上 export enum CurrencyType USD USD AUD AUD GBP GBP CAD CAD 实现这种类型 type Rates AUD number CAD number GBP num
  • Twisted:禁用 Twisted 框架类的日志记录

    我的基于 Twisted 的客户端循环发送 UDP 数据包 因此我使用 DatagramProtocol 类 这是来源 usr bin python coding utf 8 from twisted application service
  • 为什么临时对象被销毁后不崩溃

    class C public int True int i const return i 2 const C F const C c return c int main const C c F C Line 1 cout lt lt boo
  • UNION 到 JPA 查询

    是否可以在 JPA 甚至 Criteria Builder 中查询 UNION 我正在寻找例子 但到目前为止我还没有结果 有人有如何使用它的示例吗 或者说是用原生sql吗 SQL 支持 UNION 但 JPA 2 0 JPQL 不支持 大多
  • 在矩阵中按元素复制[重复]

    这个问题在这里已经有答案了 比方说 我有 A 1 2 3 4 我想使用返回的repmat B 1 1 2 2 1 1 2 2 3 3 4 4 3 3 4 4 恳请您的帮助 谢谢 我不知道使用的方法repmat但这里有一个方法使用kron k
  • jwt令牌过期时间(asp.net core)

    我想增加 JWT 令牌的生命周期 但我做不到 我尝试用谷歌搜索这个问题并找到了参考文献JwtBearerOptions TokenValidationParameters ClockSkew 我还尝试提供 1 分 20 秒的时间跨度 但应用
  • 在 React 循环内多次调用 setter 时状态未正确更新

    我想一键将多个对象发送到购物车 为此 我循环一个数组并调用addProductToCart但它只保存最后一个对象CartContext state 当逐个发送对象时 来自不同页面 或者如果发送的是同一页面的一些对象 但不是全部 它会保存在状
  • SQLConfigDataSource 不添加 64 位驱动程序的系统 DSN

    我从加载 odbccp32 dllSystem32甚至尝试使用来自SysWow64 I use SQLConfigDataSource函数为指定的驱动程序配置我的系统 DSN 此函数可以成功配置 32 位驱动程序 但不能对 64 位驱动程序
  • 在文件中查找文本并检索行号

    我试图 以编程方式 在大量 VB6 文件中查找对特定字符串 即 LOCK ID 的引用 为了帮助人们直接导航到参考 我还想检索匹配的行号 IE 搜索所有 VB6 文件以供参考 如果找到引用 我想检索引用所在的行号 除了打开目录中的每个文件并
  • Unicode 转换为字符串留下前导字节顺序标记[重复]

    这个问题在这里已经有答案了 在我的 NET 3 5 C 应用程序中 我将 unicode 编码的字节数组转换为字符串 字节数组如下 255 254 85 0 83 0 69 0 Using Encoding Unicode GetStrin
  • NPM 获取失败

    这是一个快速的 npm install socket io npm http GET https registry npmjs org socket io npm http 304 https registry npmjs org sock
  • ES6 模块:导入后未定义 onclick 函数

    我正在测试 ES6 模块并希望让用户使用以下命令访问一些导入的函数onclick 测试 html
  • 在 C# 中拖放矩形

    我想知道如何在 C 中绘制矩形 并将其拖放到页面中 我的代码用于绘制它 但我无法拖放它 public partial class Form1 Form public bool drag false int cur x cur y Recta
  • 如何在 Pygame 中对对象或精灵的位置进行动画处理,并将其移向预定义的位置或沿着定义的路径移动?

    我学会了如何在pygame中打印图像 但我不知道如何制作动态位置 它可以自行改变图像位置 我错过了什么 这是我的尝试 import pygame screen size 360 600 screen pygame display set m
  • 从字符串到 MongoDB ObjectID 的转换

    我尝试将字符串 ID 转换为 MongoDB ObjectID public class relevancy test extends Object implements Comparable
  • 在 Android 应用程序中使用 startActivityForResult

    我写了一个应用程序 其中有一个