Nic*_*ick 0 service android ipc
我使用本教程创建了自己的 :remote 服务。它有效,但有一个问题:我无法删除侦听器。轨迹是:
onServiceConnected add listener: net.ServiceGP$1@44930168
Run Code Online (Sandbox Code Playgroud)
(从我的主要活动中,当我执行以下操作时:
startService(i);
bindService(i, serviceConnection, 0);
Run Code Online (Sandbox Code Playgroud)
然后形成服务:
Adding new listener [net.bgtask.ServiceListener$Stub$Proxy@44916d30]... new listener size = 1
Run Code Online (Sandbox Code Playgroud)
然后我按下后退按钮,然后:
onDestroy of main activity, removing listener: net.ServiceGP$1@44930168
Run Code Online (Sandbox Code Playgroud)
并形成服务:
Removing listener [net.bgtask.ServiceListener$Stub$Proxy@44917440]... new listener size = 1
Run Code Online (Sandbox Code Playgroud)
奇怪......在活动中我有相同的对象,但在服务中不同。为什么这样?
小智 5
此示例中的问题(比较链接)是列表用于侦听器集合
private List<TweetCollectorListener> listeners = new ArrayList<TweetCollectorListener>();
Run Code Online (Sandbox Code Playgroud)
代替
private RemoteCallbackList<TweetCollectorListener> listeners = new RemoteCallbackList<TweetCollectorListener>();
Run Code Online (Sandbox Code Playgroud)
与相应的
(1) listeners.register(listener);
(2) listeners.unregister(listener);
Run Code Online (Sandbox Code Playgroud)
代替
(1) listeners.add(listener);
(2) listeners.remove(listener);
Run Code Online (Sandbox Code Playgroud)
参数(在我看来)不是对同一个监听器的引用,但 RemoteCallbackList 处理了这个问题。
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |