如何在另一个任务中调用另一个Android应用程序并返回结果?

如何在另一个任务中调用另一个Android应用程序并返回结果?,android,android-intent,android-activity,android-contentprovider,invocation,Android,Android Intent,Android Activity,Android Contentprovider,Invocation,我正在开发一个应用程序,它应该能够被其他应用程序调用并返回结果。我尝试将intents与startActivityForResult一起使用,但我遇到了两个问题:首先,使用launchMode singleTop,应用程序在每次调用时都会再次初始化。因为调用应用程序会多次调用我的应用程序,并且由于身份验证,初始化需要一些时间,所以这不是一个选项。所以我尝试了启动模式单任务。但我发现startActivityForResult不会将结果返回到另一个任务 现在的问题是:一个应用程序如何调用另一个应用

我正在开发一个应用程序,它应该能够被其他应用程序调用并返回结果。我尝试将intents与startActivityForResult一起使用,但我遇到了两个问题:首先,使用launchMode singleTop,应用程序在每次调用时都会再次初始化。因为调用应用程序会多次调用我的应用程序,并且由于身份验证,初始化需要一些时间,所以这不是一个选项。所以我尝试了启动模式单任务。但我发现startActivityForResult不会将结果返回到另一个任务

现在的问题是:一个应用程序如何调用另一个应用程序中已经初始化的活动,返回结果,并保持调用的活动处于初始化状态。 例如:A调用B。在B中执行一些操作。焦点和结果返回到A。B保持初始化状态,以便A以后可以再次调用它

在阅读了大量文档后,我提出了以下可能的解决方案:

A调用B。B再次调用A,结果是intent extra。某种程度上,应该保存一个文件的状态 A调用B。B向A发送广播。Focus返回A,并在BroadcastReceiver中接收结果。 A调用B。B的结果存储在B中的内容提供程序中。焦点返回给A。A请求B中的内容提供程序的结果。 或者使用launchmode singleTop和startActivityForResult,并在结果发送回A后以某种方式保存B的状态?
哪种解决方案最有效?或者还有其他/更好的解决方案吗?

您是否同时编写了A和B?如果不是,为什么各种应用程序的作者会为所有这些而烦恼呢?如果你同时写A和B,为什么它们是分开的应用呢?如果它们紧密耦合,调用应用程序将调用我的应用程序很多,听起来它们应该只是一个应用程序,而不是两个或更多。我在写B,另外两个团队在写a,将来我也会写其他a。它不是一个应用程序,因为它变得非常大,多个团队在同一个代码库中工作。此外,我认为最好保持这种方式。。