Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android創建桌面快捷鍵shortcut

android創建桌面快捷鍵shortcut

編輯:關於Android編程

有很多人也寫過創建桌面快捷鍵的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,給快捷方式添加一個
圖標和名稱。

\


代碼:<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">

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


理解了原理,是不是再也不會忘記怎麼添加快捷方式了


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved