我已经采用了遗留应用程序进行完全重写,因此,重命名了起始活动。为了应对从主屏幕放置我的应用程序快捷方式的用户,我添加了一个从旧名称指向新名称的activity-alias
。
此前:
<activity
android:name=".SplashScreenActivity"
android:theme="@style/Theme.Styled.NoAnimation" />
现在:
<activity
android:name=".activities.StartActivity_"
android:theme="@style/Theme.Styled.NoAnimation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name=".SplashScreenActivity"
android:exported="true"
android:targetActivity=".activities.StartActivity_"/>
这适用于我在2.1和4.0之间测试的各种设备。然而,在Jelly Bean(4.1&amp; 4.2)上,我看到默认启动器现在正在删除启动图标。
更糟糕的是,在某些测试中,升级不会显示应用,只会在第二次安装的应用列表中显示它。似乎没有押韵或理由;有时应用程序会丢失。
我玩弄了IntentFilter
:
<activity
android:name=".activities.StartActivity_"
android:theme="@style/Theme.Styled.NoAnimation" />
<activity-alias
android:name=".SplashScreenActivity"
android:exported="true"
android:targetActivity=".activities.StartActivity_" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
亚行似乎并不那么喜欢:
未找到启动器活动!
启动只会同步设备上的应用程序包!
为了完整性:将IntentFilter
添加到两个活动名称会保留主屏幕快捷方式,但会在应用程序列表中显示两个应用程序。
如何迁移并让所有用户满意?
答案 0 :(得分:2)
在Android 4.2.2上,将启动器意图过滤器移动到另一个活动或别名会导致所有快捷方式,窗口小部件和系统应用程序列表图标消失。设备和模拟器上会出现此错误。 Android 4.1.2中不会发生此问题。我在这里提交了这个错误:
更改启动器活动后,应用启动器快捷方式和小部件消失 https://code.google.com/p/android/issues/detail?id=54720
答案 1 :(得分:0)
这似乎是4.2模拟器与库存启动器特有的错误。
该应用程序是荷兰市场上非常受欢迎的应用程序。随着越来越多的设备将迁移到Jelly Bean,我将密切关注可能与之相关的任何问题。
当然,如果有人在野外遇到这种情况,我很想听到它。