为什么代码是在意图重定向代码之后执行的?



我有这个安卓代码:

Intent launchIntent = packageManager.getLaunchIntentForPackage(context.getPackageName());
cpa.startMainActivity(launchIntent.getComponent(), user);
// try to move down
if (dialogDismisser != null) {
dialogDismisser.run();
}

怎么可能连cpa.startMainActivity之后都叫dialogDismisser

意图重定向承诺仅在将来的某个时候发生?

启动活动不会终止您的线程。 您的线程将继续运行,完成函数和任何其他函数,直到它回到其循环器或结束线程。 如果不想执行剩余的代码,则需要返回。

新活动将在主线程下次有机会查看其消息时启动。 因此,如果在线程上调用它,下一个上下文将切换。 如果这是在主线程上运行的,那么当它返回到 looper 时,在处理任何其他挂起的消息之后。(假设您在自己的应用程序中启动活动。 如果没有,则下次操作系统上下文切换到该应用的主线程并且该线程到达循环器时会发生。

意图重定向承诺只会在未来的某个时候发生?

确定。这是一个异步操作。此外,调用会导致通过IPC启动新的(或启动已在运行的(进程,而不会终止调用方。

最新更新