更新后Android断流快捷方式

时间:2015-03-03 15:54:54

标签: android shortcut android-launcher

Launcher / Main活动在清单中发生了变化,更新后的用户使用自定义操作系统启动器(即:dodol Launcher)报告了他们的快捷方式,其中包含消息" App未安装"。

这是一个大问题,因为许多人只是在混乱中卸载应用程序。

根据我的理解,发生的事情是发射器捕获了一些关于快捷方式的其他信息,当它看到与清单中的启动器活动不匹配时,它认为应用程序不再存在。

这显然是一个自定义启动器问题,但似乎广泛传播到需要解决这个问题。

我正在尝试设置旧的&作为MAIN / LAUNCHER的新活动,看看这是否有任何影响。

是否有其他人遇到过类似的问题,如果有的话,是否有任何建议的策略来解决这个问题?

感谢。

1 个答案:

答案 0 :(得分:2)

以下是我解决这个问题的方法。我将LoginActivity作为主要发布活动:

<activity android:name=".activities.LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

我们不得不重做一些逻辑,主要是我们的MAIN活动是如何开始的。我们最终创建了虚拟LauncherActivity并将用户带到应用内部或LoginActivity。因此,在完成之后,我们在升级后得到完全相同的问题。幸运的是我在发布之前抓住了它。 “应用未安装”。

解。使用activity-alias,进行一些修补,如果我们需要重命名LoginActivity,我不能100%确定。但是我们确实将它重命名为SignInActivity,这里是清单中的结束配置,对我们有效。

<activity android:name=".activities.LauncherActivity" android:noHistory="true" android:theme="@android:style/Theme.NoDisplay" />

        <!-- Don't brake 2.7.2->3.0.0 shortcuts, keep ALIAS for old way to access app -->
        <activity-alias android:name=".activities.LoginActivity" android:targetActivity=".activities.LauncherActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

        <activity android:name=".activities.SignInActivity" />

指向此处 - 我们保留旧签名,但“重新路由”启动器以使用我们的新LauncherActivity