通知中的Android Catch事件(长按)

标准的通知点击通知会触发PendingIntent。

是否有可能赶上其他事件?

要求是赶上长按。

Solutions Collecting From Web of "通知中的Android Catch事件(长按)"

虽然您可以使用NotificationCompat和RemoteView创build自定义的Notification-Views,但您无法操作底层的点击行为。 你唯一的select是改变一些ViewTypes的手工参数:

  • button :setOnClickPendingIntent() 更改button意图
  • TextViews :setTextViewText() textview-contents
  • RemoteViews :addView() 听起来不错,但只能用于插入嵌套的RemoteViews
  • ListViews :setOnClickFillInIntent() 为ListViews应用意图
  • ImageViews :setImageViewBitmap() 更改ImageView的图片
  • 和更多..

因此,要回答您的问题:不,使用最新的Google API(api lvl 17 – 14.01.2013)不能将onLongClickListener插入通知中的任何视图元素。

这是为什么?

RemoteView只是一个简化的View的衍生物。 它甚至与View(RemoteView extends Object)没有关系,因此不提供在真实视图( View.setOnLongClickListener() )中所有的选项。

什么是RemoteViews?

RemoteView可以由另一个进程执行,具有与原始应用程序相同的权限(这就是为什么他们被称为远程视图)。 这种方式小部件和通知运行与其定义的应用程序的权限。

从ICS开始,长按通知会触发“应用程序信息”选项,所以你可以看到哪个应用程序正在发送它(用于识别垃圾邮件应用程序)。另外,从JellyBean,你已经丰富了通知,允许你做很多事情,包括多个动作,大概你可以用这个解决你的问题。

Shalafi

如果你想更多的见解,我推荐这些文章:

就像一个应用程序小部件,它是一个远程视图,它只支持轻击和垂直拖动手势