在通知点击事件时调用活动

Posted

技术标签:

【中文标题】在通知点击事件时调用活动【英文标题】:Call activity when on notification tap event 【发布时间】:2010-09-08 09:19:46 【问题描述】:

我想在用户下拉通知并点击该通知时调用该活动。我该怎么做?

【问题讨论】:

【参考方案1】:

Notification 对象上调用setLatestEventInfo(),提供PendingIntent,当他们在通知抽屉中点击您的条目时将启动您的活动。这里是 a sample project 的演示。

【讨论】:

点击通知栏上的通知就可以开始活动了。但看起来它创建了新的活动,尽管当前活动正在运行。我试图在调用PendingIntent 时将标志传递给Intent,但看起来没有用。那么在单击通知时创建新活动之前如何关闭当前活动? @HuyTower: setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) 你的Intent 应该可以工作。 @CommonsWare:非常适合我!【参考方案2】:

假设notif 是您的Notification 对象:

Intent notificationIntent = new Intent(this.getApplicationContext(), ActivityToStart.class);
PendingIntent contentIntent = PendingIntent.getActivity(this.getApplicationContext(), 0, notificationIntent, 0);
notif.contentIntent = contentIntent;

【讨论】:

点击通知栏上的通知就可以开始活动了。但看起来它创建了新的活动,尽管当前活动正在运行。我试图在调用PendingIntent 时将标志传递给Intent,但看起来没有用。那么在单击通知时创建新活动之前如何关闭当前活动?【参考方案3】:

这是点击通知时调用活动的代码

Notification notif = new Notification(R.drawable.ic_launcher,"List of Contacts...", System.currentTimeMillis());
Intent notificationIntent = new Intent(context,AllContacts.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,            notificationIntent, 0);
notif.setLatestEventInfo(context, from, message, contentIntent);
nm.notify(1, notif);

【讨论】:

点击通知栏上的通知就可以开始活动了。但看起来它创建了新的活动,尽管当前活动正在运行。我试图在调用PendingIntent 时将标志传递给Intent,但看起来没有用。那么在单击通知时创建新活动之前如何关闭当前活动?

以上是关于在通知点击事件时调用活动的主要内容,如果未能解决你的问题,请参考以下文章

js常用事件

事件句柄

JavaScript 基础 -

js 事件

JS DOM事件

DOM 常见事件