Jesta
Jesta

Reputation: 1437

Transparent, floating Android Activity doesn't allow updates to content behind it

I have tried and tried to get a transparent, floating Activity to show up (as an overlay), but allow whatever is behind it to still show AND update. Right now it seems that if the Activity behind mine is closed or a new one opens (could be either in this case), the new underneath Activity does not shine through my Activity to the user.

I have tried every combination of Flags I can come up with, and at this point I'm assuming Flags are not the answer. Can anyone help me find the proper code to do such a thing?

Before anyone asks, I have a valid use case for this type of Activity; no, I don't plan to annoy the user with it.

Upvotes: 3

Views: 1212

Answers (3)

neteinstein
neteinstein

Reputation: 17613

It is possible to update the activity below by implementing a Broadcast receiver on it, and sending Broadcasts from whenever you want.

Upvotes: 0

Maximus
Maximus

Reputation: 8431

As far as I know, this is not possible. It should be possible to create an activity using the theme Theme.Dialog or Theme.Translucent (see http://developer.android.com/guide/topics/ui/themes.html) to have whatever activity is beneath it still show at least partially. The problem is, is that the Activity below will be Paused (it's onPause will have fired, but it's onStop will not have) and I don't believe it is possible in any way to have it run any code.

Upvotes: 2

Wroclai
Wroclai

Reputation: 26925

I have not investigated in making a transparent Activity but I don't think it's possible in an Activity way. This seems to be logical since even if you have a transparent Activity it's still relying on the View inside it - the View makes the transparent part, not the Activity. This means you're probably gonna end up with a transparent View instead.

If you have a "front" Activity with a transparent View and then a "back" Activity, the "back" Activity would not be visible to the user - and that's because you're in another Activity.

So, the correct way is to use a transparent View.

Upvotes: 1

Related Questions