隐藏活动的UI,但仅限于通过意图启动时

时间:2013-11-30 14:24:26

标签: android user-interface android-intent android-activity

我正在尝试编写一个Android应用程序,它通过http命令控制外部设备。

当应用程序从主屏幕上的图标正常启动时,它会进入完整的用户界面,允许用户与应用程序进行交互并控制设备。这一切都很好。

我现在想添加对Android意图的支持,以便其他程序(例如Tasker)可以向我的应用程序发出命令。但是,当应用程序收到意图时,我不希望显示UI。我希望一切都在后台运行,以执行intent中包含的命令。

我的应用程序使用的所有方法/数据等都在主要活动中,因此我希望在该活动中拥有完整的UI和意图处理。

在onCreate方法中,我因此检查应用程序是否已正常启动或通过意图启动。

如果正常启动,它会继续调用setContentView(R.layout.main)等来调出UI。

如果通过意图启动,我尝试调用setTheme(android.R.style.Theme_NoDisplay)尝试完全隐藏UI,但我仍然会在顶部显示标题栏的黑屏。

有没有办法抑制活动的用户界面,但只有当它被意图启动时才会生效?

感激不尽的任何帮助。我可以看到解决隐藏UI的其他问题,但他们都建议更改Android Manifest中的设置,而我想要做的是取决于应用程序的启动方式。

由于

安德鲁

1 个答案:

答案 0 :(得分:1)

  

有没有办法抑制活动的用户界面,但只有当它被意图启动时才会生效?

创建主活动的子类,在清单中设置其无UI主题。为该活动提供第三方应用使用的唯一<intent-filter>。通过这种方式,您的逻辑可以保留在一个类中,但是您可以为第三方应用程序应用无UI主题。

呃,如果你等到Java代码做出这个决定,那你就太迟了。