12

アプリにGCMを実装し、通知のハッシュを保持して、通知シェードの内容を追跡しています(ユーザーがアプリを使用しているかどうかに基づいてインテントを変更する必要があります)。

すべての通知にdeleteIntentPendingIntentを設定しました。これは、ローカルハッシュから通知を削除するだけなので、通知は更新されません。すべてをクリアするか、スワイプして通知を削除すると、インテントは正常に実行されます。ただし、通知を自動キャンセルに設定しました。通知をクリックしても、通知のdeleteIntentはトリガーされません。

私の質問は、通知が自動キャンセルされたときに通知を受ける方法はありますか?

4

3 に答える 3

2

これは、Android SDK ドキュメントで説明されているように、DeleteIntent の正しい動作です。

通知がユーザーによって明示的にクリアされたときに送信する PendingIntent を指定します。

DeleteIntent は、ユーザーが通知をスワイプするか、通知メニューの「すべて消去」機能を使用して通知を明示的に消去した場合にのみ呼び出されます。通知をタップすると、AutoCancel が True に設定されている場合でも、ContentIntent のみがトリガーされます。

于 2013-04-12T01:43:01.400 に答える
1

ドキュメントには、ここここに、FLAG_AUTO_CANCEL で通知をクリックすると自動的にキャンセルされると書かれています。この動作は、ユーザーのクリック アクションに応答して起動されるため、通常の contentIntent (設定されている場合) が自動キャンセルと共に起動されることも意味します。contentIntent フィールドを deleteIntent と共に使用して、明示的なユーザー タップによって実行されたキャンセルを検出します。

于 2012-11-29T12:37:51.223 に答える