編輯:Android開發實例
有人會說,快捷方式,不是安裝完應用程序後,長按應用程序的ICON然後將它拖到桌面上不就行了嗎?沒錯,這樣是一種方法,但這種方法有一個缺點,看圖吧:
如上圖,如果我們長按桌面點擊快捷方式,將會跳到如下界面,如果單從這個界面選擇的話,我們就必須進入Applications 目錄,然後再在Applications 裡面選擇我們對應的應用程序,這樣的話用戶可能得麻煩的去找咯。但我們同時會發現,在Applications 的下面有很多另外的ICON比如 上圖的BookMark ,Contact 等,這些也是應用,那麼這些是怎麼做到不用進去Applications 而在第一頁就出現供用戶選擇呢?今天我們就針對這點來講講吧。
要做這一功能首先我們先來了解一下manifest 裡面的這一標簽:
<activity-alias>
<activity-alias android:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permission="string"
android:targetActivity="string" >
. . .
</activity-alias>
<application>
<intent-filter>
<meta-data>
targetActivity
attribute. The target must be in the same application as the alias and it must be declared before the alias in the manifest. targetActivity
屬性命名。目標activity必須與別名在同一應用程序的manifest裡,並且在別名之前聲明。The alias presents the target activity as a independent entity. It can have its own set of intent filters, and they, rather than the intent filters on the target activity itself, determine which intents can activate the target through the alias and how the system treats the alias. For example, the intent filters on the alias may specify the "android.intent.action.MAIN
" and "android.intent.category.LAUNCHER
" flags, causing it to be represented in the application launcher, even though none of the filters on the target activity itself set these flags.
別名作為一個獨立的實體代表目標activity。它可以有它自己的一套intent filter,它們,而不是目標activity自己的intent filter,決定哪個intent能夠活性化目標通過別名以及系統如何處理別名。例如,別名的intent filter可以指定"android.intent.action.MAIN
"和"android.intent.category.LAUNCHER
"標簽,使之顯示在應用程序啟動器上,即使目標activity自己沒有設置這些標簽。
With the exception of targetActivity
, <activity-alias>
attributes are a subset of <activity>
attributes. For attributes in the subset, none of the values set for the target carry over to the alias. However, for attributes not in the subset, the values set for the target activity also apply to the alias.
targetActivity
的例外,<activity-alias>
屬性是<activity>
屬性的一個子集。對於該子集中的屬性,目標activity中設置的值不會覆蓋別名的值。然而,對於那些子集中沒有設置的屬性,設置給目標activity的值同樣適用於別名。
上面給出的解釋我們來配置一下manifest,配置為如下:
<activity android:name=".shortcut">
Activity:
.shortcut 是我們快捷方式需要的Activity
activity-alias:
對應的targetActivity是指向應用創建快捷方式使用的Activity
android:label對應的創建快捷方式列表顯示的文字,而該應用對應的快捷方式的圖標則默認使用我們給定的application的圖標。如圖:
好了,這是第一步步驟,下面進入代碼階段,先看代碼:
package com.terry.attrs;
代碼解釋:
onCreate方法,首先獲取intent 的action如果接收到的action為創建快捷方式的請求,則執行創建快捷方式的代碼,否則則通過得到的extra 為textView 賦值。
createShortCut方法,首先設置快捷方式點擊後要跳轉的intent 和要帶入的參數,然後設置桌面快捷方式的名稱,圖標和對應的intent(即上面帶入數據和跳轉的界面的 class的Intent)最後將結果傳入。
最近運行的結果:
跳擊後到達的界面:
TIP:這裡可以是任何ACTIVITY界面。
最後給大家分享下源碼吧:
快捷方式
就到這裡,希望我的一篇廢話能對你有所幫助。
轉自:http://www.cnblogs.com/TerryBlog/archive/2010/11/04/1869436.html
本文實例總結了 Android中Notification用法。分享給大家供大家參考,具體如下: 我們在用手機的時候,如果來了短信,而我們沒有點擊查看的話,是不是在
1、下載 進入官網(http://opencv.org/)下載OpenCV4Android並解壓。目錄結構如下圖所示。 其中,sdk目錄即是我們開發openc
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放