android创建桌面快捷键shortcut

有很多人也写过创建桌面快捷键的blog,但是大部分都只讲了怎么用,其实技术使用起来都很简单,但是你使用后下次还知道吗?


根本原因还是不清楚原理,今天我就来讲讲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,给快捷方式添加一个

图标和名称。




代码:

 <activity android:name="ShortCutTest">                
        <intent-filter>                    
            <action android:name="android.intent.action.CREATE_SHORTCUT"/>                
        </intent-filter>            
    </activity>   

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);     
        }     
    }     
}   


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值