Igo*_*gor 2 android communication weak-references hashmap
我特别感兴趣的是官方android FAQ中的以下建议.
WeakReferences对象的HashMap
您还可以使用WeakReferences的HashMap到具有长键的对象.当活动想要将对象传递给另一个活动时,它只是将对象放入地图中,并通过意图附加功能将密钥(基于计数器或时间戳的唯一Long)发送给收件人活动.收件人活动使用此密钥检索对象
我还没有找到如何正确实现这一点的方法.我不确定为什么WeakReferences在这里是首选,为什么不使用硬引用.
我的实现(我想从活动A向服务B发送类XY的实例):
接收服务有一个静态的HashMap对象.
public static HashMap<Long, Object> parameters = new HashMap<Long, Object>();
Run Code Online (Sandbox Code Playgroud)发送部分的代码(活动A)
long key = SystemClock.elapsedRealtime();
B.parameters.put(key, new XY());
Intent i = new Intent(this, B.class);
i.putExtra("PARAM_UPLOAD", key);
startService(i);
Run Code Online (Sandbox Code Playgroud)接收部分的代码(服务B)
long key = intent.getLongExtra("PARAM_UPLOAD", -1);
XY data = (XY)parameters.get(key);
Run Code Online (Sandbox Code Playgroud)代码使用硬引用.我为什么要在这里使用弱引用(如FAQ所提出的)?并且这样的使用模式可以传递数据,或者您更喜欢其他内容.
| 归档时间: |
|
| 查看次数: |
3792 次 |
| 最近记录: |