问题
I know it may not be best practice but this is what i want to do.
When my broadcast receiver is called - start a new activity which has is not fullscreen and has a transparent background - which opens on top of your current activity / desktop wallpaper.
The code I have so far is as follows:
I create + call a new activity with :
Intent testActivityIntent = new Intent(context, com.andy.tabletsms.work.SMSPopup.class);
testActivityIntent.putExtra("com.andy.tabletsms.message", main.msgs.get(i));
testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
testActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
context.startActivity(testActivityIntent);
And then the activity has a theme of :
android:theme="@android:style/Theme.Translucent.NoTitleBar"
And the code of the activity is just a bog standard activity with a simple layout. However when that broadcast receiver starts the activity - it appears on top of the previous activity which was started when the applicaiton started.....as per this image shows :
回答1:
This is related to the problem I answered in a previous question here: Activity started from notification opened on top of the activity stack
Basically it's all about: android:taskAffinity and android:launchMode
回答2:
You've asked this same question like 3 times now and we still don't have nearly enough information. You keep mentioning the "original activity" but we have no idea what that is, how you started it, or where it went such that it "comes back".
Your probably is you're probably not finishing your "main" activity, or that you have weird flags, or it's listening for the same intent.
You also don't show us anything about your broadcast receiver.
回答3:
Dont use android:theme="@android:style/Theme.Translucent.NoTitleBar" leave the android:theme as the default.This works for me
来源:https://stackoverflow.com/questions/4629662/android-launch-an-activity-from-a-broadcast-receiver