在服务中,我有一个主要的远程视图

notRemoteView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);


然后我添加另一个包含一个ImageButton的remoteview

RemoteViews btnView1 = new RemoteViews(context.getPackageName(), R.layout.btn1);
notRemoteView.addView(R.id.image_button_container, btnView1);


之后,我打电话给:

startForeground(requestCode, notification);


一切正常,单击时可以执行适当的操作,但是ImageButton会重复。 btnView1 remoteview似乎已重新添加到主remoteview中。使用每个按钮单击,另一个按钮将添加到通知中。即使在构建通知之前我将两个远程对象都设为空时,也会发生这种情况。

我以前曾经将ImageButton用作主remoteview的一部分,并且效果很好。
注意:我将startForeground(requestCode, notification);与相同的requestCode一起使用,这是更新服务/后台通知的正确方法

最佳答案

我知道了,每次我想更新通知时都需要删除所有remoteviews:

notRemoteView = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
notRemoteView.removeAllViews(R.id.image_button_container);


感谢以下答案:Android app widget: content added twice

关于android - 当startforeground多次调用时,通知remoteview重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23412180/

10-12 03:21