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

时间:2015-02-02 16:02:50

标签: android android-intent android-activity android-contentprovider invocation

我正在开发一个应该能够被其他应用调用并发回结果的应用。我尝试使用startActivityForResult()的意图,但我面临两个问题:首先,使用launchMode singleTop,应用程序在每次调用时再次初始化。因为调用应用程序会调用我的应用程序很多,并且初始化需要一些时间,因为身份验证,这不是一个选项。所以我尝试了launchmode singleTask。但我发现startActivityForResult()不会将结果返回给另一个任务。

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

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

  • A调用B. B再次使用intent extra中的结果调用A. (不知何故应该保存A的状态)
  • A调用B. B向A发送广播.Aocus返回A,A在BroadcastReceiver中接收结果。
  • A调用B.结果B存储在B中的内容提供者中。焦点返回A. A从B中的内容提供者请求结果。
  • 或者使用launchmode singleTop和startActivityForResult()并以某种方式在结果发送回A后保存B的状态?

哪种解决方案最好/将起作用?或者还有其他/更好的解决方案吗?

0 个答案:

没有答案