我知道类似的问题已经被问了很多次。我认为我读过大部分。但是没有一个答案是适用的。
我需要通过Intents(活动调用/广播)传递复杂的对象。所有的操作都在我的进程内完成。这就是为什么我认为没有理由将我的对象写入流中,然后在几毫秒后重新组装它们。我想通过我的应用程序传递我的对象引用。有没有办法做到这一点?
由于我的应用程序将多次广播相同的事件,我不能依赖静态成员。我需要获取完全相同的对象进行广播。
这就是为什么我在考虑一个静态的“Referenceholder”,它将接受一个对象并返回一个整数,该整数标识其内部列表中的此对象,以便我可以通过".putExtras"传递这个整数。但据我所知,由于多个侦听器可能对同一个对象感兴趣,因此我无法从该列表中清除此对象,我必须永远将其保留在我的Referenceholder中(假设线程可能随时恢复-即使是2分钟之后)。
有任何想法吗?我做错了什么吗?或者有任何关于如何清理我的引用的想法(可能在几秒钟后?这可能会导致崩溃,但似乎比编写没有理由地组装和重组我的对象的代码更实际)。
我需要通过Intents(活动调用/广播)传递复杂的对象。所有的操作都在我的进程内完成。这就是为什么我认为没有理由将我的对象写入流中,然后在几毫秒后重新组装它们。我想通过我的应用程序传递我的对象引用。有没有办法做到这一点?
由于我的应用程序将多次广播相同的事件,我不能依赖静态成员。我需要获取完全相同的对象进行广播。
这就是为什么我在考虑一个静态的“Referenceholder”,它将接受一个对象并返回一个整数,该整数标识其内部列表中的此对象,以便我可以通过".putExtras"传递这个整数。但据我所知,由于多个侦听器可能对同一个对象感兴趣,因此我无法从该列表中清除此对象,我必须永远将其保留在我的Referenceholder中(假设线程可能随时恢复-即使是2分钟之后)。
有任何想法吗?我做错了什么吗?或者有任何关于如何清理我的引用的想法(可能在几秒钟后?这可能会导致崩溃,但似乎比编写没有理由地组装和重组我的对象的代码更实际)。
Globals.object = objectIWantToPass;
,然后ActivityB.onCreate()
执行Object myObject = Globals.object; Globals.object = null;
,这里不存在内存泄漏的危险。 - David Wasser