Android:运行非侵入性活动透明/不可点击的活动

时间:2018-11-12 00:33:39

标签: android

解释这有点麻烦,但请耐心等待。我还在帖子底部放了一个可视化的视图。

我有一个带有2个struct T; struct S { member: T, } impl Drop for S { fn drop(&mut self) { destroyT(self.member) } } // elsewhere, in a library fn destroyT(t: T) { //... } (A,C)和一个Services(B)的应用。该活动是启动第二个服务所绝对需要的,因为它创建了一个GUI,该GUI无法从服务本身内部创建,因为它需要活动参考。

Activity正在监听,一旦触发,将启动Service A,后者将启动Activity B

因为我目前对如何让Service CService A通信(C已绑定到B)一无所知,所以我认为我会在Service C每次启动时启动活动触发,然后立即隐藏活动。

除了不良设计外,这种方法通常还可以,但是存在一个主要缺陷:由于我不断启动活动(Service A,所以它不会堆积起来),它一直出现在屏幕上,从而阻止用户与手机进行互动在那段时间内。我确实立即运行launchMode="singleInstance"来使该moveTaskToBack(true);尽快消失,但几秒钟后仍然可见。

现在我想知道如何

A)让Activity检查Service AActivity B是否正在运行(用户不介意活动每小时闪烁一次,我只是不想带它每15秒前进一次)

B)将Service C设置为“可触摸”,这样触摸就可以通过,用户不会注意到它在屏幕上停留了一秒钟(我已经使其透明了,因此主屏幕是可见的,但仍然阻止用户点击主屏幕上的任何内容)

enter image description here

0 个答案:

没有答案