【问题标题】:Issues with "Generating New Processes" when called by different applications?由不同应用程序调用时“生成新进程”的问题?
【发布时间】:2015-04-22 00:38:19
【问题描述】:

我们了解到,在 linux 内核中,android 会在启动时生成新进程并分配新进程 ID 或每个应用程序。我关心的是当从不同的父进程调用同一个应用程序(或其活动)时会发生什么?并且当时都在运行。例如,用户点击了应用程序 A 的“使用 facebook 登录”,并且 facebook 的登录活动开始了。现在,在没有完成此登录的情况下,用户将应用程序 B 置于前台并单击此应用程序上的“使用 facebook 登录”按钮。现在两个 facebook 进程同时运行。 android 是为每个子 facebook 进程创建两个进程还是用单个进程同时处理?

更新

我稍微改变了问题场景。为了更清楚。 我的手机安装了糖果粉碎传奇、地铁冲浪者和 Facebook 应用程序。现在,

第一个任务栈是:candy crush->用facebook登录->facebook登录

第二个任务栈是:地铁冲浪者->用facebook登录->facebook登录

这里两个 facebook 登录屏幕都处于活动状态(未死)。 Bur 使用 runningProcess 检查时,似乎两个屏幕都处理单个 processID。我关心的是android如何管理由单个进程同时处理的相同应用程序的两个实例??

【问题讨论】:

  • “现在两个 facebook 进程同时运行”——你的证明是,究竟是什么?
  • @CommonsWare,我的问题中心依赖于这句话。使用“两个 facebook 活动正在运行......”可能会更好。但我的观点是,facebook 是两个任务堆栈的顶级活动,或者它仍在应用程序 A 和 B 上运行。
  • 你说 Facebook,首先 Facebook sdk 有自己的 FacebookActivity 处理登录的事情,如果你有两个应用程序,而这些应用程序需要 Facebook 登录,那么这两个会在他们的 Activity 中调用单独的 FacebookActivity堆。如果您正在谈论安装了 Facebook 应用程序,那么两个应用程序以不同的意图启动应用程序的 LoginActivity,那么对于每个调用,Facebook 应用程序的 Activity Stack 中都会有两个单独的 LoginAcvtivities。希望你能理解。

标签: android linux facebook process fork


【解决方案1】:

Bur 用 runningProcess 检查时,似乎两个屏幕都处理单个 processID

正确。

android如何管理由单个进程同时处理的相同应用程序的两个实例?

应用程序只有一个实例。登录活动可能有两个实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2018-09-15
    相关资源
    最近更新 更多