gpt4 book ai didi

android - 将文本转换委托(delegate)给 "plugin"Android 应用程序,事先不知道

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:36 25 4
gpt4 key购买 nike

上下文

我们的应用向用户显示一个 HTML 抽认卡。
我们添加了几层“过滤器”以满足不同的用户群体:

  • 为了满足国际象棋爱好者,我们转换任何{FEN:rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2} block 到代表棋盘的 HTML 表格,棋盘位于正确的位置
  • 为了满足中文语言学习者,我们将<ruby>字<rt>zì</rt></ruby>
  • ...

原始 HTML → 国际象棋转换 → 中文转换 → ... → 最终 HTML 显示

问题

过滤器的数量越来越多,导致的问题:

  • 较慢的翻译
  • 较重的下载
  • 维护更大的源代码
  • 更多错误/崩溃
  • 维护负担

问题

因此,我们想制作这些可单独安装的应用程序。
例如,国际象棋+中国爱好者会安装 3 个应用程序:

  • TheApp
  • TheApp 国际象棋插件
  • TheApp中文插件

TheApp 会自动发现安装了哪些插件,并依次调用它们(顺序无关紧要)。

我正在考虑使用 Intent THEAPPTRANSFORM ,但我如何才能收到具有 <intent-filter> 的应用程序列表?对于 THEAPPTRANSFORM , 并依次调用它们?

速度是主要要求。我读过Intents are 10+ times slower than direct calls ... 会 Parcelable帮忙吗?

如果不行,有没有其他解决办法?

最佳答案

要知道哪些应用程序有广播接收器,THEAPPTRANSFORM 作为过滤器,您可以使用下面的代码

PackageManager pm = getPackageManager();
Intent intent = new Intent("THEAPPTRANSFORM");
List<ResolveInfo> info = pm.queryBroadcastReceivers(intent, 0);
for (ResolveInfo resolveInfo : info) {

Log.e("apps", "packages = " + resolveInfo.activityInfo.packageName);
}

关于android - 将文本转换委托(delegate)给 "plugin"Android 应用程序,事先不知道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23002072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com