1

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

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,这是更新服务/后台通知的正确方法吗

4

1 回答 1

2

我想通了,每次我想更新通知时都需要删除所有远程视图:

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

感谢这个答案:Android应用小部件:内容添加了两次

于 2014-05-01T17:54:03.650 回答