0

一个应用程序从另一个应用程序开始(为了结果)一个活动。

一切正常,但用户可以通过长按主页按钮并选择该活动来切换到呼叫活动。从逻辑上讲,这是错误的,调用活动必须在被调用活动完成之前才能接收控制权。

我该如何解决?(最好在调用应用程序端。)

目前代码如下:

final String INTENT_NAME = "com.xyz.xyz.GET_XXX";
//...
Intent intent = new Intent(INTENT_NAME);
intent.putExtra("something", something()); // app-specific
startActivityForResult(intent, requestCode);

想要什么:

调用活动被推迟,直到被调用活动终止。在被调用活动完成之前,用户不能切换到调用活动(最好任务切换器甚至不应该将其显示为选项)。被调用活动结束后,接收控制权的是调用活动。

目前有什么:

可以在未完成被调用活动的情况下切换到调用活动。

4

1 回答 1

0

我该如何解决?

你重写你的应用程序来修复你的设计缺陷。

开始另一个活动就像链接到另一个网站。鉴于该链接,用户可以做任何用户想做的事情:

  • 点击链接,做某事,然后通过一些前向操作返回到您的站点(例如,提交导致服务器重定向到您的站点的表单)

  • 单击链接,什么都不做,然后通过“返回”按钮返回您的站点

  • 单击链接,什么都不做,并且根本不返回您的站点(例如,关闭浏览器选项卡)

你有类似的结果startActivityForResult()

  • 欢迎用户通过 BACK 或 RECENTS(又名长按 HOME)返回您的应用

  • 欢迎用户永远不要返回您的应用

  • 欢迎用户做您希望他们在其他活动中做的事情

在这方面,您无法控制用户。因此,您的应用程序需要被实施以适应任何这些可能的结果。或者,您的应用程序需要重写以不使用startActivityForResult().

于 2013-09-03T10:56:56.053 回答