gpt4 book ai didi

android - 没有前景的应用程序间通信的最佳方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:46 25 4
gpt4 key购买 nike

我一直在努力研究如何在不将每个应用程序置于前台的情况下实现应用程序间通信的最佳方法。我想过使用 BroadcastReceivers 在两个应用程序之间进行通信,但似乎它们必须在 list 中注册,因此很难将数据带到 Activity 中。例如,一个应用程序会将其状态发送到另一个应用程序,表明它已准备好开始运行 session 。但是,我想在启动 session 时将另一个应用程序保留在后台,并让用户根据自己的选择在应用程序之间切换。

有谁知道最好的方法是什么?基本上,只要另一个应用程序正在运行,我就想将数据发送到另一个应用程序。

最佳答案

我想您对 broadcastreceiver 的想法还不错:您不必在 list 中注册一个 broadcastreceiver,您也可以按需创建它们,甚至可以在与您的 Activity 组合时创建它们。但除此之外,还有一些方法可以解决您的问题:

方法#1

首先,您可以使用 IntentServicePendingIntent 通过 ResultReceiver 进行简单的通信。另请参阅这个很棒的 stackoverflow 问题以获取更多信息:

android communication between two applications

方法 #2

一种更通用的方法可能是使用 IntentFilter 和一个捕获发送数据的方案。它也是基于 Intent 的,并且可能是您场景的解决方案,如果(!)您正确处理数据的捕获:在您的情况下,仅当它正在运行时。另请参阅本文以了解此方法的(有点)简短示例:

https://android-developers.googleblog.com/2009/11/integrating-application-with-intents.html.

方法 #3

最后但同样重要的是:使用共享(但安全!)文件和其他数据存储选项。当您的第二个应用程序正在运行时,这可能是一个加密文件和一个活跃的监听器。这可能还需要其他提到的选项的其他部分,例如可以由 AlarmmanagerJobScheduler 管理的正在运行的 IntentService。对于这种情况,我推荐官方 Android 文档:

https://developer.android.com/training/secure-file-sharing/setup-sharing.html https://developer.android.com/guide/topics/data/data-storage.html.

另外:因为在大多数情况下您会有某种“后台运行服务”,我建议您看看 Android 为您提供的一些方法,因为它们可以完全改变适用的方法和可能性:

https://www.bignerdranch.com/blog/choosing-the-right-background-scheduler-in-android/

长话短说:

祝你好运,随时关注我! ;)

关于android - 没有前景的应用程序间通信的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56383756/

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