【问题标题】:Propagate back press event to system将后按事件传播到系统
【发布时间】:2015-03-27 18:20:02
【问题描述】:

我正在尝试在 android 中创建一个覆盖,它将用作块屏幕。我想要的是,如果我的块屏幕覆盖在顶部并且用户按下后屏幕,那么在这种情况下,我的块屏幕应该被关闭而不阻止后按下事件。 IE。如果启动了任何第三方应用程序并在此之上显示我的阻止屏幕。然后按下设备返回按钮,我的块屏幕以及应用程序 A 应该被删除。

任何帮助将不胜感激...

【问题讨论】:

  • 我不太确定你想要什么。您想对其他应用程序的活动还是在启动屏幕上执行后按?
  • 我正在开发一个应用程序储物柜应用程序。我想要的是当用户启动任何被阻止的应用程序时,一个阻止屏幕应该出现在该应用程序的顶部。当用户按下返回键时,我的阻止屏幕以及被阻止的应用程序应该得到返回事件。我不想为另一个应用程序处理返回键,而只想将此事件传播到被阻止的应用程序。
  • 所以您实际上并不想将后按事件传播到被阻止的应用程序,而是将应用程序发送到后台(就像用户正在退出它一样),对吗?
  • 是的......就像用户在另一个应用程序上按下了返回键。
  • 不,如果用户在其他应用程序上按下返回键,它可以在应用程序内执行操作。不发送到后台。

标签: android


【解决方案1】:

如果您只想像按下主页按钮一样关闭应用程序,您始终可以通过 Intent 执行它:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

这会将您的应用程序发送到后台以及您设置在其上的应用程序。

希望对你有帮助。

【讨论】:

  • 它实际上不会“关闭”任何应用程序,而只是导致 onPause 由于启动器移动到前台而被调用
  • 如果我安装了多个启动器,它将显示一个选择器对话框。
  • 很公平,将其更改为发送到后台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多