当前位置: 首页 > 知识库问答 >
问题:

单击通知后关闭状态栏

晏正豪
2023-03-14

我的通知包含几个按钮:

  • 1个按钮启动主活动(执行此操作时应关闭状态栏)
  • 其中4人发送待定意图以控制音乐(应保持状态栏打开)

问题是,第一个按钮没有关闭状态栏。。。

第一个按钮发送的Pending帐篷:

Intent activityIntent = new Intent(smp, MusicShaker.class)
            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                    | Intent.FLAG_ACTIVITY_SINGLE_TOP);
activityIntent.setAction(MyIntentAction.DO_LAUNCH_ACTIVITY_FROM_NOTIF);
remoteViews.setOnClickPendingIntent(R.id.notif_album_IV, PendingIntent
            .getActivity(ctxt, 0, activityIntent,
                    PendingIntent.FLAG_CANCEL_CURRENT));

活动已正确启动,但状态栏仍在那里,不会自行关闭<我是不是错过了一面旗帜?我可以通过MyActivity程序关闭状态栏吗。onResume()
编辑:顺便说一下,通知是由服务推送的

感谢=)

共有3个答案

施永宁
2023-03-14

好吧,我找到了解决办法。。。我无法重现标准通知产生的相同行为,因此我:
-使我的imageButton“notif_album_IV”不可点击,并将其更改为ImageView
-使用以下代码:

builder.setContentIntent(PendingIntent.getActivity(smp, 0,
  activityIntent,PendingIntent.FLAG_CANCEL_CURRENT))

与在图像上“手动”设置SetOnClickPendingContent不同,意图广播由内容背景处理

能远
2023-03-14

是的,当你的应用程序启动时,你必须以编程方式取消通知。

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(NOTIFICATION_ID);
和季
2023-03-14

你,只需要在创建构建器时指定setAuto取消(true)。这就是全部:)

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("title goes here")
            .setContentText("content text goes here").setAutoCancel(true);
 类似资料:
  • 点击通知按钮后如何关闭状态栏? 我试过了,但有个例外: 我的代码: 在NotificationIntent类

  • 我浏览了Stackoverflow,发现有人问了这个问题,但我没有找到任何解决方案。 我有一个带有两个按钮的自定义通知。我想在按下通知按钮后关闭状态栏面板,但不知道如何关闭。如果我按下通知本身(也就是contentIntent),面板就会关闭,这也是我想要的按钮。 这是我的通知代码:

  • 我参考了以下链接来研究Android中通知服务的演示示例:Sai Geetha博客和Vogella教程。 这两个项目都起到了作用,但都是部分的,也就是说,我已经按原样下载并执行了这两个项目。两者都有启动通知的按钮。单击按钮时,状态栏顶部会显示通知。 问题来了,点击该通知后,既不会显示任何消息,也不会激发浏览新活动的意图。 我对这个概念还不熟悉,所以非常感谢您的帮助。。。 创建通知。班 通知接收者。

  • 我目前遇到以下问题: 我已经实现了自定义FirebaseMessagingService,并且覆盖了方法onMessageReceived()。此外,当应用程序在后台时,我从getExtras()获取捆绑包 我需要通知内容,以便在db中本地保存 发生了什么: 当应用程序处于后台时,从Firebase控制台发送3个通知 创建了3个状态栏通知 单击其中一个- 你能帮忙吗? 启动器活动代码: 自定义Fi

  • 问题内容: 我在NetBeans中设计了两个JFrame。 当我单击“规则”按钮(即放在JFrame1上)时,它将打开第二个JFrame(但JFrame2在JFrame1的窗口上打开,这是我不想要的)。在第二个JFrame中,有一个“关闭”按钮。但是,当我单击此按钮时,我希望打开JFrame1并且它也能正常工作,但是JFrame2实际上没有关闭,并且JFrame1出现在JFrame2上方。 简而言

  • 如何在用户点击我的通知后禁用关闭通知的面板(在主体上,而不是操作按钮上)? 我使用和但面板继续关闭。我做错了什么? 补充:我也使用以下代码: 如果我删除此代码,通知面板将保持在屏幕上显示。当我添加此代码面板时隐藏。但我需要通过点击通知体创建对MyBroadcast的调用。有没有办法通过点击通知体来呼叫我的广播? 地址2:在@NIPHIN answer上,我尝试在我的广播接收器内恢复本土化面板: 这