Android launch an activity from a broadcast receiver

拥有回忆 提交于 2019-11-28 05:57:31

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!