Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动态更改默认活动_Android_Android Activity - Fatal编程技术网

Android 动态更改默认活动

Android 动态更改默认活动,android,android-activity,Android,Android Activity,我希望能够更改用户运行应用程序时运行的活动 我知道如何在应用程序的清单文件中执行此操作,但我希望在安装后以编程方式执行此操作。原因是,我希望用户能够选择在打开应用程序时加载哪个屏幕 我该怎么做?我所知道的唯一方法似乎非常笨拙:有一个基本上为空的活动,其中包含MAIN intent过滤器,然后读取用户的设置并将用户转移到所需的活动。这会造成很多混乱,比如需要考虑后台堆栈,直接加载一个又一个活动的开销似乎浪费了时间和资源 您不能动态更改启动器活动 正如您所说的,可以通过保存用户首选项并每次启动所需的

我希望能够更改用户运行应用程序时运行的
活动

我知道如何在应用程序的清单文件中执行此操作,但我希望在安装后以编程方式执行此操作。原因是,我希望用户能够选择在打开应用程序时加载哪个屏幕


我该怎么做?我所知道的唯一方法似乎非常笨拙:有一个基本上为空的活动,其中包含MAIN intent过滤器,然后读取用户的设置并将用户转移到所需的活动。这会造成很多混乱,比如需要考虑后台堆栈,直接加载一个又一个活动的开销似乎浪费了时间和资源

您不能动态更改启动器活动

正如您所说的,可以通过保存用户首选项并每次启动所需的活动来实现。我已经试过了,而且速度很快,不会显示出来。不记得在主要活动中调用finish。它将解决后堆栈问题


您还可以为不同的活动使用不同的片段,并决定应该将哪个片段添加到主活动中。它可能更快。然而,正如我所说的,启动一个新活动并隐藏主活动足够快,因为它是在onCreate方法中完成的。别担心。

这是唯一的办法。请记住,在开始新活动后,请完成空活动