Android--使用activity-alias避免shortcut重新创建

本文探讨了在Android应用中如何通过activity-alias保持桌面快捷方式不因启动页面的更改而消失的问题。提供了具体的实现方法及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   <activity android:name=".ui.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <meta-data
                android:name="android.app.shortcuts"
                android:resource="@xml/shortcuts"/>
        </activity>

        <activity android:name=".ui.SearchActivity">
        </activity>

MainActivity启动页面,并且设置shortcuts,如果用户添加shortcuts到桌面,那么会是这样。有一个searchshortcut

这里写图片描述

如果此时更换启动页面为SearchActivity,那么之前用户创建在首页的shourcut将会消失。

      <activity android:name=".ui.MainActivity">


        </activity>

        <activity android:name=".ui.SearchActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <meta-data
                android:name="android.app.shortcuts"
                android:resource="@xml/shortcuts"/>
        </activity>

上面的代码把启动页面改成了SearchActivity,并设置shortcut,可以看到,更换启动页面后,首页之前添加的shortcut已经销毁了。
这里写图片描述

我们可以通过activity-alias避免这个问题

   <activity android:name=".ui.MainActivity">
        </activity>
        <activity android:name=".ui.SearchActivity">
        </activity>
        <!--
            为了避免以后更换launch actvitiy,导致shortcuts消失,
                使用activity-alias 定义launch actvitiy,注意必须定义在targetActivity
                之后
        -->
        <activity-alias
            android:name=".Launcher"
            android:label="@string/app_name"
            android:targetActivity=".ui.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <meta-data
                android:name="android.app.shortcuts"
                android:resource="@xml/shortcuts"/>
        </activity-alias>

这样无论android:targetActivity=".ui.SearchActivity"还是其他,首页的shortcut都不会销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值