当startforeground多次调用时,通知remoteview会重复

时间:2014-05-01 16:39:42

标签: android android-layout android-notifications android-remoteview

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

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作为主要远程视图的一部分,它工作得很好。 注意:我使用startForeground(requestCode, notification);使用相同的requestCode,这是更新服务/后台通知的正确方法

1 个答案:

答案 0 :(得分:1)

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

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

感谢您的回答:Android app widget: content added twice