应用程序从另一个应用程序启动(结果)一个活动。
一切正常,但用户可以通过长按主页按钮并选择该活动来切换到通话活动。从逻辑上讲,这是错误的,并且在调用的活动完成之前,调用活动必须不能获得控制权。
我该如何解决这个问题? (最好是在主叫申请方。)
目前代码为:
final String INTENT_NAME = "com.xyz.xyz.GET_XXX";
//...
Intent intent = new Intent(INTENT_NAME);
intent.putExtra("something", something()); // app-specific
startActivityForResult(intent, requestCode);
满意的是:
呼叫活动被推迟,直到被叫活动终止。在被调用活动结束之前,用户无法切换到调用活动(最好,任务切换器甚至不应将其显示为选项)。在被调用的活动完成后,它是接收控制的调用活动。
目前有什么:
可以在不完成被调用活动的情况下切换到调用活动。
答案 0 :(得分:0)
我该如何解决这个问题?
您重写了应用以修复设计缺陷。
启动另一项活动就像链接到另一个网站。如果链接:
,用户可以做任何用户想要的事情点击链接,执行某些操作,然后通过某些转发操作返回您的网站(例如,提交导致服务器重定向到您网站的表单)
点击链接,不做任何事情,然后通过“返回”按钮返回您的网站
点击该链接,不执行任何操作,根本不返回您的网站(例如,关闭浏览器标签页)
您与startActivityForResult()
的结果相似:
欢迎用户通过BACK或RECENTS(a.k.a.,长按HOME)返回您的应用程序
欢迎用户永远不要回到您的应用
欢迎用户做你希望他们在其他活动中做的事情
在这方面你无法控制用户。因此,您的应用程序需要实现与任何可能的结果一致。或者,您的应用程序需要重写为不使用startActivityForResult()
。