我面临以下问题。我有一个拥有固定用户群的应用程序,我想更改该应用程序的默认启动器 Activity 。
该问题仅发生在部分通过 Google Play 更新应用的用户身上。通过 Android Studio 运行时不会出现问题。
问题出在一些用户手机上的启动器上。在他们更新应用程序后,当他们尝试从主屏幕打开应用程序时,一些用户会收到“错误应用程序未安装”或“Activity 不存在”错误。
似乎在某些用户的设备上,操作系统启动器会添加有关 Activity 名称的额外信息,这会在他们更新应用后导致问题。
为了避免上述问题,更改启动器 Activity 的正确方法是什么?这是一个相当大的问题,因为许多非技术用户只是卸载该应用程序。
之前 .TabHostActivity 被设置为 Launcher/Main
将 .SplashActivity 设置为 Launcher/Main 并将更新发布到 Google Play 后,一些用户在从主屏幕打开快捷方式时开始收到“应用未安装”错误。如果他们通过应用程序抽屉打开应用程序,应用程序仍然可以运行,但主屏幕上的快捷方式会出现此错误。
代码:
<activity android:name=".SplashActivity" android:screenOrientation="portrait" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TabHostActivity" android:configChanges="keyboardHidden|orientation|screenSize">
</activity>
最佳答案
- 再次启动 TabHostActivity Launcher Activity 。
- 首先在 TabHostActivity 中检查它是否已从 SplashActivity 打开(您可以在从 SplashActivity 启动 TabHostActivity 时在 Intent 中添加一个标志,并在 TabHostActivity 中检查相同的标志)
- 如果 TabHostActivity 尚未从 SplashActivity 打开,则重定向到 SplashActivity。
- 上述所有内容都应在 TabHostActivity 的 OnCreate 中的任何其他代码之前进行编码。
关于Android:更改启动器 Activity 的正确方法(完整阅读),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28805363/