Android 单击通知后关闭状态栏
我的通知包含几个按钮:Android 单击通知后关闭状态栏,android,notifications,statusbar,Android,Notifications,Statusbar,我的通知包含几个按钮: 1按钮启动主活动(执行此操作时应关闭状态栏) 其中4人发送未决意图以控制音乐(应保持状态栏打开) 问题是,第一个按钮没有关闭状态栏 第一个按钮发送的PendingEvent: Intent activityIntent = new Intent(smp, MusicShaker.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_AC
- 1按钮启动主活动(执行此操作时应关闭状态栏)
- 其中4人发送未决意图以控制音乐(应保持状态栏打开)
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()程序性地关闭状态栏吗?
编辑:顺便说一下,通知是由服务推送的
谢谢=)是的,当应用程序启动时,您必须以编程方式取消通知
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(NOTIFICATION_ID);
好的,我找到了一个解决办法。。。
我无法复制标准通知产生的相同行为,因此我:-使我的imageButton“notif_album_IV”不可点击,并将其更改为ImageView
-使用此代码:
builder.setContentIntent(PendingIntent.getActivity(smp, 0,
activityIntent,PendingIntent.FLAG_CANCEL_CURRENT))
与在图像上“手动”设置SetOnClickPendingContent不同,意图广播由内容背景处理您只需在创建生成器时指定setAutoCancel(true)。仅此而已:) 这对我很有用:
sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
此解决方案允许我在不关闭状态栏的情况下删除通知,实际上我需要相反的行为(在不删除notif的情况下关闭状态栏)
sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));