当前位置: 首页 > 面试题库 >

Android:管理多个通知

龙宣
2023-03-14
问题内容

我试图在我的应用程序中创建多个通知。为了唯一地标识每个通知,我给了它们一个唯一的identificationId。以下是我的代码:

private void updateNotification(int notificationId, int clockStatusID, CharSequence text) {
 //notificationManager.cancel(notificationId);
// throws up an ongoing notification that the timer is running
Log.i("TIMERCOUNT", "Notification id: " + notificationId);
Notification not = new Notification(clockStatusID, // the
    // icon
    // for
    // the
    // status
    // bar
    text, // the text to display in the ticker
    System.currentTimeMillis() // the timestamp for the
    // notification to appear
);
Intent intent = new Intent();
intent.putExtra("notificationID", notificationId);
intent.setAction("actionstring" + System.currentTimeMillis());
intent.setClassName("com.chander.time.android.activities",
"com.chander.time.android.activities.Tabs");


not.setLatestEventInfo(self,
    getText(R.string.timer_notification_title),
    getText(R.string.timer_on_notification_text), PendingIntent
    .getActivity(this, 0, intent,
        PendingIntent.FLAG_UPDATE_CURRENT));

not.flags += Notification.FLAG_ONGOING_EVENT;
not.flags += Notification.FLAG_NO_CLEAR;
notificationManager.notify(notificationId, not);
}

问题:选择通知后,将调用Tabs活动来传递意图。我想访问在“选项卡”中选择的通知的唯一notificationId。我尝试了intent.putExtra()来将NotificationId保存在intent中。但是,对于多个通知,它会覆盖notifyId并返回最新的。我不明白为什么会发生这种情况以及如何避免覆盖notificationId。

谢谢,钱德


问题答案:

我得到了答案。意图已被缓存。要创建新的意图,只需添加以下代码:

saveCallIntent.setData((Uri.parse("custom://"+System.currentTimeMillis())));

这使意图变得独特。

另外,有人建议我使用以下代码来使意图唯一:

saveCallIntent.setAction("actionstring" + System.currentTimeMillis());

它没有帮助我,但可能对其他人有所帮助。

-钱德



 类似资料:
  • 问题内容: 我希望能够发出通知,以提醒用户有关计时器已结束的信息,但是,当您单击通知时,我不希望有任何意图。 我已经尝试将null传递给意图 问题答案: 您可以传递参数 代替 上

  • 由于chrome不允许直接加载本地crx文件,所以该插件用不了了。 号多是什么? 一个chrome插件。有记录账号,自动登录的功能。 怎么用? 第一步:安装。 第二步:打开网站,例如:http://weibo.com,按F7/F8呼出。 第三步:登录并使用。 为什么用? 如果你帐号繁多,请选择号多。方便快捷,便于使用。轻松记录,一键登录。 号多也需要登录? 是的。登录一次即可一直使用。 注意:清除

  • 帮助用户解决多云接入以及删除等问题。 产品支持对接哪些平台? 目前 云联壹云 支持对接的私有云平台有VMware、OpenStack、ZStack、DStack;公有云平台有阿里云、AWS、Azure、华为云、腾讯云、UCloud、谷歌云、天翼云、Ecloud。 管理公有云平台,云账号需要什么权限? 至少需要所操作资源的管理权限。建议授予云账号平台所有功能的管理权限。 对接云账号后,新建相关资源时

  • 多云管理通过云账号与其它云平台对接,纳管其它云平台上的资源。 云账号 云账号用于与私有云和公有云平台建立连接,同步相关资源进行管理并支持在平台统一查看公有云操作日志等。

  • 介绍标签管理、虚拟机的创建和连接的内容。 查看虚拟机列表 当添加完云账号后,在云账号上的虚拟机将会同步到 “主机-虚拟机” 列表,用户可以在 云联壹云 平台上管理虚拟机。详情请参考主机-虚拟机. 虚拟机标签管理 标签用于管理资源,用户可以为资源(例如虚拟机、磁盘等)绑定标签,并通过标签搜索资源。详情请参标签管理. 查看虚拟机标签 当虚拟机已绑定标签后,可以在虚拟机列表的标签列或者虚拟机详情页面查看

  • 我有一个用例,我想我需要两个实体管理器,它们访问相同的持久性单元。所以本质上,我希望在同一个数据库上有两个持久性上下文。这是否可以通过PersistenceContext注释实现? 我想写以下内容,但不知道如何告诉JPA注入两个不同的manager实例。 我想我可以切换到应用程序管理的事务,然后我可以使用工厂创建另一个事务。但是我不想自己管理事务,如果不是绝对必要的话。