从广播接收器启动的活动是否使用与应用程序相同的堆?

时间:2012-07-24 21:50:00

标签: android memory process broadcastreceiver

我在某处看到广播接收器在与应用程序不同的进程中运行,因此它有一个自己的堆。现在,如果在广播接收器中我从我的应用程序开始活动,这将在应用程序的进程中运行还是仍在广播接收器的过程中?

对于本机堆(预蜂窝API),这个问题的答案是否也是正确的?

想知道,因为当我收到推送通知时,我必须启动内存昂贵的活动/屏幕,如果我正处于其他内存昂贵的活动中,在应用程序中,它可能会导致内存不足错误。但是如果它是一个单独的堆(更具体地说是本机堆,因为内存消耗来自位图,我正在为API预蜂窝开发)我不必担心它。

注意“在某处阅读”是指:Why so much memory? Nikolay Chorniy的帖子

  

“有一个棘手的解决方法,我曾经避免使用OutOfMemoryError。我注册了一个接收器,以便它在不同的进程上运行......”

1 个答案:

答案 0 :(得分:2)

  

我在某处看到广播接收器在与应用程序不同的进程中运行

默认情况下,所有组件都在同一进程中运行。

  

想知道因为我收到推送通知时必须启动内存昂贵的活动/屏幕

用户可能不一定会欣赏您在不知名的地方显示“内存昂贵的活动/屏幕”。