2013-12-13 56 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

相关问题