3

GCMメッセージを受信した後にアクティビティを開始すると、目的のアクティビティの横にあるMainActivityも開始されます。問題は、不要なアクティビティ(DialogActivity)をDialog-Boxスタイルのアクティビティとして表示したいので、その背景が透明になることです。

これが私がアクティビティを開始する方法です:

@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); 
   }

これは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>

したがって、透過的なアクティビティはMainActivityの上に配置されますが、これは避けたいと思います。DialogActivityのみが表示されます。誰か助けを知っていますか?

4

1 に答える 1

6

私はすでにそれを解決しました。今後問題に直面する人のために: インテントに 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); 

Androidのドキュメントによると

于 2012-09-06T13:55:13.233 に答える