2013-12-13 52 views
0

我正在開發一款應用程序,可以從服務器下載某些數據,並在每次成功下載此數據時發出通知。但是,當用戶打開通知或刪除通知時,我也需要發送統計信息。如果用戶打開了通知,發送起來很簡單 - 只需在意圖中添加一個布爾鍵,然後在活動中通過此鍵執行「發送」代碼。但是另一個用戶操作呢 - 刪除通知。這裏是我的問題 - 我不能創建任何意圖因爲這個動作不會創建任何活動,我怎麼知道用戶何時刪除通知?如何知道用戶何時刪除通知

回答

1

看看這個例子:

Intent deleteIntent = new Intent(context, SomeActivity.class); 
PendingIntent pendingDialog = PendingIntent.getActivity(context, 0, deleteIntent, 
       PendingIntent.FLAG_UPDATE_CURRENT); 

Notification notification = new NotificationCompat.Builder(context) 
    .setContentTitle(context.getString(R.string.title)) 
    .setContentText(context.getString(R.string.content)) 
    .setSmallIcon(R.drawable.image) 
    .setContentIntent(clickIntent) // executed if clicked 
    .setDeleteIntent(deleteIntent) // executed if deleted 
    .addAction(R.drawable.action_image, // adds a button 
      context.getString(R.string.do_it), actionIntent); 

待定意圖也可能是​​以及(檢查documentation)。

乾杯!

+0

謝謝,現在我已經得到了它 - 我有一個服務,我只是添加一個廣播接收器,當我打電話給我的「發送」代碼 – whizzzkey

1

我怎麼知道用戶何時刪除通知?

使用setDeleteIntent() on your Notification.Builder

+0

對不起我的愚蠢,你能給我一個例子嗎?我沒有得到 - 我應該在哪裏發送這個意圖?我的活動?但是當用戶刪除通知後,我不想顯示任何有用的信息。我只想在我的Helper.class中執行「發送統計信息」代碼 – whizzzkey

+0

@whizzzkey:PendingIntent可以啓動一個活動,發送命令到服務或發送廣播。在你的情況下,如果「發送統計信息」涉及磁盤或網絡I/O,發送命令到「IntentService」將「發送統計信息」似乎是一個可能的候選人。 – CommonsWare

相關問題