在服务中我有一个主要的远程视图
notRemoteView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
然后我添加另一个包含ImageButton
的remoteviewRemoteViews btnView1 = new RemoteViews(context.getPackageName(), R.layout.btn1);
notRemoteView.addView(R.id.image_button_container, btnView1);
之后我打电话给:
startForeground(requestCode, notification);
一切正常,单击时执行相应的操作,但ImageButton会重复。 btnView1 remoteview似乎重新添加到主remoteview。使用每个按钮单击另一个按钮将添加到通知中。即使我在构建通知之前使两个远程处理都无效,也会发生这种情况。
我曾经将ImageButton作为主要远程视图的一部分,它工作得很好。
注意:我使用startForeground(requestCode, notification);
使用相同的requestCode,这是更新服务/后台通知的正确方法
答案 0 :(得分:1)
我想通了,每次我想更新通知时都需要删除所有远程视图:
notRemoteView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
notRemoteView.removeAllViews(R.id.image_button_container);