将文本转换委派给“插件”Android应用程序,事先并不知道

将文本转换委派给“插件”Android应用程序,事先并不知道,第1张

概述上下文我们的应用程序向用户显示HTMLflashcard.我们添加了几层“过滤器”以满足不同的用户群:>为了满足国际象棋爱好者的需要,我们将任何{FEN:rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1RbKQkq–12}块转换为代表棋盘的HTML表格,棋盘位于正确位置>为

上下文

我们的应用程序向用户显示HTML flashcard.
我们添加了几层“过滤器”以满足不同的用户群:

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

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

问题

过滤器数量不断增加,导致出现问题:

>较慢的演绎
>更重要的下载
>维护更大的源代码
>更多错误/崩溃
>维护负担

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

> TheApp
> TheApp Chess插件
> TheApp中文插件

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

我正在考虑使用一个意图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应用程序,事先并不知道全部内容,希望文章能够帮你解决将文本转换委派给“插件”Android应用程序,事先并不知道所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1107251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存