博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android创建桌面快捷键shortcut
阅读量:7107 次
发布时间:2019-06-28

本文共 2035 字,大约阅读时间需要 6 分钟。

有非常多人也写过创建桌面快捷键的blog。可是大部分都仅仅讲了怎么用,事实上技术使用起来都非常easy。可是你使用后下次还知道吗?

根本原因还是不清楚原理。今天我就来讲讲shortcut创建过程。

过程:

home键--》点击加入--》弹出一个Dialog对话框--》Dialog对话框中的数据。是一个系统级专门用来查找的Activity启动
---》查找出数据显示能加入的快捷方式---》然后保存数据。退出dialog——》桌面launcher操作——》完毕
原理:
查看源代码。事实上是launcher 中调用pickShortcut()方法,启动PickActivity检查须要的数据,在PickActivity中会检查
manifest.xml中对activity有没有加IntenttFilter,假设查到有,就会通过switch-case选择对于的Item返回消息给laucher,
laucher中在onResultActivity()做接受返回的数据,再次启动一个带返回值得Activity到ShortcutActivity,等待ShortcutActivity
处理完毕,返回信息,调用completeAddliveFolder(). 
 事实上我们要做的主要是下图步骤2和步骤5;步骤2 在manifest.xml给Activity加入IntentFileter,步骤5,给快捷方式加入一个
图标和名称。

代码:

public class ShortCutTest extends Activity{             @Override            protected void onCreate(Bundle savedInstanceState) {                 // TODO Auto-generated method stub                 super.onCreate(savedInstanceState);                 createShortCut();      }                  public void createShortCut(){                     Intent addShortCut;             //推断是否须要加入快捷方式                     if(getIntent().getAction().equals(Intent.ACTION_CREATE_SHORTCUT)){                             addShortCut = new Intent();                             //快捷方式的名称                             addShortCut.putExtra(Intent.EXTRA_SHORTCUT_NAME , "我的快捷方式");                             //显示的图片                            Parcelable icon = ShortcutIconResource.fromContext(this, R.drawable.icon);                             addShortCut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);                 //快捷方式激活的activity,须要运行的intent,自定义                             addShortCut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent());                             //OK,生成                             setResult(RESULT_OK, addShortCut);             }else{                              //取消                             setResult(RESULT_CANCELED);             }         }     }

理解了原理,是不是再也不会忘记怎么加入快捷方式了

你可能感兴趣的文章
MySql无法远程登录以及IP被锁解决办法
查看>>
BZOJ 2716: [Violet 3]天使玩偶 [CDQ分治]
查看>>
温故而知新 小测试
查看>>
CSS margin-top 属性
查看>>
YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作)
查看>>
C# 根据注册表获取当前用户的常用目录整理
查看>>
Python如何输出包含在对象中的中文字符?
查看>>
.NET Core项目从xproj+project.json向csproj迁移简介
查看>>
【转】浏览器的渲染原理
查看>>
如何使用光盘刻录大师旋转视频文件
查看>>
Linux前台的程序转到后台执行(关闭终端而不杀死命令)
查看>>
PS 如何把大嘴变小嘴
查看>>
Tomcat指定特定JDK版本
查看>>
JS字典 Dictionary类
查看>>
分离你的spring配置文件,让结构更清晰
查看>>
杜教筛 [学习笔记]【更新中】
查看>>
2014年辛星解读Javascript之DOM之事件及其绑定
查看>>
企业管理 把公司做小,把客户做大
查看>>
tiff和geotiff格式分析
查看>>
R语言低级绘图函数-arrows
查看>>