1

假设有 3 个活动,即 ActivityA、ActivityB 和 ActivityC。

<activity
   android:name=".ActivityA" />
<activity
   android:name=".ActivityB"
   android:process=":process2" />
<activity
   android:name=".ActivityC" />

活动的实例化流程如下:

  • ActivityA 正在主应用程序进程中运行。
  • ActivityA 启动 ActivityB。
  • ActivityB 在 process2 中创建并运行(因为为其设置了android:process属性)
  • ActivityB 现在启动 ActivityC。
  • ActivityC在主应用进程中创建并运行(默认为主进程)

要求

每当从 process2 中的另一个组件创建 Android 组件(Activity、Service 等)时,请确保这些组件仅在 process2 中创建和执行(即使这些组件的android:process未在清单文件中定义)。例如:在上述情况下,应强制 ActivityC 在 Process2 中创建和运行。

要求的原因:

  1. ActivityB 和 ActivityC 的执行应该是沙盒的,并且由于它们引起的任何问题都不应影响主进程。所以需要在一个单独的进程 - process2 中执行它们。
  2. ActivityC 在第 3 方 SDK 代码中定义。因此,无法控制为此活动设置属性android:process 。

我在各种论坛中搜索过,但我无法得到这个问题的答案。请让我知道如何实现这一目标。

4

0 回答 0