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都不会销毁。
相关文章推荐
- [Android Pro] activity-alias的使用
- android activity横竖屏切换,Activity重新创建问题解决!
- Android开发,实用的BaseActivity的创建及使用
- [Android Pro] 横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 不起作用
- 横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 不起作用
- Android官方入门文档[15]重新创建一个Activity活动
- 【Android Developers Training】 18. 重新创建一个Activity
- Android中Activity创建模式singleTask的最佳使用方式
- 安卓入门 使用android创建一个项目 从启动activity中响应按钮事件 启动另一个activity 并传递参数
- Android提升篇系列:Activity recreate(Activity 重新创建/自我恢复)机制(一)
- Android <activity-alias> 的使用
- Android Activity 之 重新创建
- Android开发教程之Fragment定义、创建与使用方法详解【包含Activity通讯,事务执行等】
- android学习4#--使用Intent创建Activity
- Android官网恢复(重新创建)Activity文档翻译:Recreating an Activity
- Android中动态更换App的桌面icon图标和activity-alias的使用
- 【Android】activity-alias的使用
- android创建一个Activity,并能够使用需要的步骤
- 横竖屏切换时,禁止activity重新创建,android:configChanges="keyboardHidden|orientation" 不起作用
- 使用Android模板创建的tabbed activity项目之问题(can’t convert taba to fragment)