通过长按主页按钮防止切换到调用活动

时间:2013-09-03 10:39:48

标签: android android-intent android-activity

应用程序从另一个应用程序启动(结果)一个活动。

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

我该如何解决这个问题? (最好是在主叫申请方。)

目前代码为:

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

满意的是:

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

目前有什么:

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

1 个答案:

答案 0 :(得分:0)

  

我该如何解决这个问题?

您重写了应用以修复设计缺陷。

启动另一项活动就像链接到另一个网站。如果链接:

,用户可以做任何用户想要的事情
  • 点击链接,执行某些操作,然后通过某些转发操作返回您的网站(例如,提交导致服务器重定向到您网站的表单)

  • 点击链接,不做任何事情,然后通过“返回”按钮返回您的网站

  • 点击该链接,不执行任何操作,根本不返回您的网站(例如,关闭浏览器标签页)

您与startActivityForResult()的结果相似:

  • 欢迎用户通过BACK或RECENTS(a.k.a.,长按HOME)返回您的应用程序

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

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

在这方面你无法控制用户。因此,您的应用程序需要实现与任何可能的结果一致。或者,您的应用程序需要重写为不使用startActivityForResult()