2015-08-31 80 views
8

我試圖在Android中創建一個PendingIntent。下面是代碼PendingIntent錯誤(必須是一個或多個:PendingIntent.FLAG_ONE_SHOT ... ..)

mNotificationIntent = new Intent(getApplicationContent(), MyAlarm.class); 
mContentIntent = PendingIntent.getActivity(getApplicationContext(), 
        0, mNotificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK); 

,我收到以下錯誤:

Must be one or more of: PendingIntent.FLAG_ONE_shot,PendingIntent.FLAG_NO_CREATE, 
     PendingIntent.FLAG_UPDATE_CURRENT, 
     Intent.FILL_IN_ACTION, Intent.FILL_IN_DATA, Intent.FILL_IN_CATEGORIES…..) 

爲什麼是這個錯誤的表現?如何解決這個問題?請幫忙。謝謝。

+0

爲什麼呢?你讀過'PendingIntent#getActivity(Context context,int requestCode,Intent intent,int flags)'javadocs嗎? – pskink

+1

@pskink PendingIntent#getActivity javadoc不清楚:涉及兩個intent,每個都有自己的標記(?),而javadoc對於設置Intent.FLAG_ACTIVITY_NEW_TASK的意圖有點含糊不清。 – pvbemmelen62

回答

13

當方法調用期望PendingIntent標誌時,您正在傳遞Intent.FLAG_ACTIVITY_NEW_TASK。如果你想添加Intent.FLAG_ACTIVITY_NEW_TASKIntent,你需要做的是這樣的:

mNotificationIntent = new Intent(getApplicationContent(), MyAlarm.class); 
mNotificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
mContentIntent = PendingIntent.getActivity(getApplicationContext(), 
       0, mNotificationIntent, 0); 
相關問題