从另一个进程的应用程序上下文启动活动

时间:2017-07-14 06:12:21

标签: android process

对于在活动上下文之外启动活动,我们将使用应用程序上下文。与applicationContext.startActivity(new Intent(TestActivity.class ....))

一样

如果调用startActivity的服务在另一个进程中,那么applicatioContext是否也属于另一个进程? android会为每个流程组件创建applicationContext吗?

如果我们没有指定TestActivity正在运行的进程,它是否也可以从另一个进程启动?

2 个答案:

答案 0 :(得分:2)

应用程序上下文不属于任何进程。但所有过程都属于应用程序。 Android应用程序上下文是Singleton,因此,您只有一个用于所有用途。

如果您从服务或其他任何不属于其他活动上下文的活动中启动活动,则应使用Intent.FLAG_ACTIVITY_NEW_TASK标记。

用法如下:

Intent dialogIntent = new Intent(this, MyActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);

答案 1 :(得分:1)

如果要从服务启动活动,则应使用PendingIntent:

Intent intent = new Intent (YourActivity.class, getContext());
PendingIntent pi = PendingIntent.getActivity(getContext(), 0, intent, 0);
pi.send();

其中getContext()是服务的上下文