您的位置:首页 > 移动开发 > Android开发

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

2018-01-01 17:09 381 查看
<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
到桌面,那么会是这样。有一个
search
shortcut




如果此时更换启动页面为
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
都不会销毁。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐