实际上,我知道如何从另一个应用程序启动应用程序。
问题是,从主屏幕启动应用程序后,当我从另一个应用程序启动它时,应用程序总是重新启动而不是恢复。(我的意思是应用程序首先通过按主屏幕的快捷方式运行(
例如 有两种应用:A,B
- 首先从主屏幕启动两个应用程序。
- 从 B 应用程序再次启动 A 应用程序。
- 应用程序将重新启动而不是恢复。
我怎样才能恢复它? 现在我这样做如下。
Intent intent = getPackageManager().getLaunchIntentForPackage(PACKAGE);
intent.setAction(ACTION);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
操作是自定义操作。 请帮忙。
您可以在启动初始活动的意图中检查Intent.CATEGORY_LAUNCHER类别和Intent.ACTION_MAIN操作。 如果存在这两个标志并且活动不在任务的根目录下(即 应用程序已经在运行(,然后我在初始活动上调用 finish((。确切的解决方案可能不适合您,但类似的东西应该。
以下是我在初始/启动活动onCreate()
所做的工作:
if (!isTaskRoot()
&& getIntent().hasCategory(Intent.CATEGORY_LAUNCHER)
&& getIntent().getAction() != null
&& getIntent().getAction().equals(Intent.ACTION_MAIN)) {
finish();
return;
}
调用 Context.startActivity(( 时,您需要在 Intent 上设置 ACTIVITY_REORDER_TO_FRONT 标志。