在服务中,我有一个主远程视图
notRemoteView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
此外,我添加了另一个包含ImageButton 的远程视图
RemoteViews btnView1 = new RemoteViews(context.getPackageName(), R.layout.btn1);
notRemoteView.addView(R.id.image_button_container, btnView1);
之后我打电话给
startForeground(requestCode, notification);
这一切都很好,点击时会执行适当的操作,但随后ImageButton会被复制。btnView1远程视图似乎被重新添加到主远程视图中。单击每个按钮后,会在通知中添加另一个按钮。即使在生成通知之前将两个远程消息都置空,也会发生这种情况。
我以前把ImageButton作为主远程视图的一部分,它运行得非常好。注意:我将startForeground(requestCode, notification);
与相同的requestCode一起使用,这是更新服务/后台通知的正确方法吗
我想好了,每次我想更新通知时都需要删除所有远程视图:
notRemoteView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
notRemoteView.removeAllViews(R.id.image_button_container);
感谢这个答案:Android应用程序小部件:内容添加了两次