2012-11-24 35 views
1

當應用程序收到推送消息時,我編寫了onMessage函數以啓動MainActivity並帶有一個警告對話框來彈出消息。到現在爲止還挺好。如何在收到gcm通知時啓動對話框?

我真正想要的只是彈出窗口!因此,當用戶正忙於其它應用程序,它只是顯示了取消或啓動應用程序的選項對話框...

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

回答

3

一兩件事你可以做的是使MainActivity背景在this post定義透明使用方法(以下複製爲快速參考),這樣用戶就覺得彈出超過她用的是當前活動和finish()如果用戶選擇取消活動...

製作活動背景transpar耳鼻喉科:

添加下面的風格在你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是色值#00000000這我把res/values/color.xml文件。您也可以在以後的Android版本使用@android:color/transparent

然後將該樣式應用到你的活動,例如:

<activity android:name=".SampleActivity" android:theme="@style/Theme.Transparent"> 
... 
</activity> 
+0

謝謝,我也跟着你的鏈接。一個好的解決方案我必須弄清的唯一一件事:對話框有兩個按鈕:啓動和取消,但是當用戶已經在應用程序中準備好時,我只喜歡一個確定按鈕。那麼,有沒有辦法在後臺或頂部獲取應用程序,所以我可以調整按鈕?謝謝荷蘭! – Harry

+0

查看下面的鏈接http://stackoverflow.com/questions/3667022/android-is-application-running-in-background/5862048#5862048這可能會有所幫助... –

+0

Ohw,我不得不尋求更好之前問.. 。 再次感謝! – Harry

相關問題