在另一个进程中从应用程序上下文开始活动
问题描述:
为了在活动上下文之外启动活动,我们将使用应用程序上下文。像applicationContext.startActivity(新的意图(TestActivity.class ....))在另一个进程中从应用程序上下文开始活动
如果调用startActivity的服务在另一个进程中,applicationatioContext是否也属于另一个进程? Android会为每个进程组件运行创建applicationContext吗?
如果我们没有指定TestActivity正在运行的进程,它是否也能够从另一个进程启动?
答
如果要启动从服务活动,你应该使用的PendingIntent:
Intent intent = new Intent (YourActivity.class, getContext());
PendingIntent pi = PendingIntent.getActivity(getContext(), 0, intent, 0);
pi.send();
其中的getContext()是一个服务的上下文
答
应用程序上下文不属于任何进程。但所有进程都属于该应用程序。 Android应用程序上下文是Singleton,因此,您只有一个用于所有用途。
如果您从服务或其他任何不是其他活动环境的活动中使用Intent.FLAG_ACTIVITY_NEW_TASK
标志,
用法是这样的:
Intent dialogIntent = new Intent(this, MyActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);