1

アプリがプッシュメッセージを受信したら、メッセージをポップアップするアラートダイアログでMainActivityを起動するようにonMessageをコーディングしました。ここまでは順調ですね。

私が本当に欲しいのはポップアップだけです!したがって、ユーザーが別のアプリで忙しいときは、アプリをキャンセルまたは起動するオプションを含むダイアログのみが表示されます...

GCMIntentServiceパート

@Override
    protected void onMessage(Context context, Intent intent) {
        Log.d(TAG, "Received a message");
        String message = intent.getExtras().getString("price");
        displayMessage(context, message);
        generateNotification(context, message);
        //Launch a activity
        Intent i = new Intent();
        i.putExtra("message", message);
        i.setClassName("nl.easy.winkel", "nl.easy.winkel.MainActivity");
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
4

1 に答える 1

3

あなたができることの1つは、この投稿MainActivityで定義されたアプローチを使用して背景を透明にすることです(クイックリファレンスのために以下をコピーします)。これにより、ユーザーは、ポップアップが現在使用しているアクティビティと、ユーザーがキャンセルを選択した場合のアクティビティを超えていると感じることができます。 。finish()

アクティビティの背景を透明にする:

次のスタイルをファイルに追加しres/values/styles.xmlます(ファイルがない場合は作成します)。完全なファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <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>
  </style>
</resources>

(値は私がファイルに入れ@color/transparentた色の値です。それ以降のAndroidバージョンでも使用できます)#00000000res/values/color.xml@android:color/transparent

次に、スタイルをアクティビティに適用します。次に例を示します。

<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent">
...
</activity>
于 2012-11-24T19:31:33.900 に答える