从服务启动活动始终打开MainActivity

最白目*_*最白目 2 android

当我在收到GCM消息后启动激活时,它会在所需的Activity旁边启动MainActivity.问题是,我想将disired Activty(DialogActivity)显示为Dialog-Box-Style Activity,因此它的背景是透明的.

这是我开始活动的方式:

@Override
protected void onMessage(Context arg0, Intent arg1) {
  Log.d("GCM", "RECIEVED A MESSAGE");
  generateNotification(arg0, arg1.getStringExtra("message"));
  Intent i = new Intent();
    i.setClass(this, DialogActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(i); 
   }
Run Code Online (Sandbox Code Playgroud)

这是styles.xml中的主题

<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
Run Code Online (Sandbox Code Playgroud)

所以透明的Activity放在MainActivity之上,我想避免它.它应该只显示DialogActivity.谁知道帮忙?

最白目*_*最白目 5

我已经解决了.对于将来面临问题的任何人:向Intent添加FLAG_ACTIVITY_MULTIPLE_TASK标志

Intent i = new Intent();
i.setClass(this, DialogActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(i); 
Run Code Online (Sandbox Code Playgroud)

根据Android文档