天天看點

android建立快捷方式來打開應用中特定的Activity

有段時間沒有記錄過了。

這也是換工作以後寫的第一篇吧,現在公司是在做sdk的接入,對于我來說,能接觸到更多不同于以前應用的很多東西,提供自己的服務給更多的人。

雖然是隻是進行疊代,但是我覺得對我也有很大的幫助。

現在sdk應設計的要求要在使用了我們sdk的遊戲在安裝打開以後就要建立一個快捷方式,然後這個快捷方式不是用來打開應用,是為了進行靜默下載下傳所建立的,但是我們知道android裡邊快捷方式是與應用綁定的,他隻能打開activity,我一開始的設想是我捕捉到快捷方式的點選事件,然後開一個service來進行下載下傳,但是首先我們不能捕捉到快捷方式的點選事件,應用這個都是launcher來進行操作的,看過launcher.java的人應該知道他其實是一個activity,我們打開手機看到的桌面,所有的應用圖示都是運作在這個activity上的,快捷方式其實就是一個textview,然後添加了一個點選事件,點選了以後也沒有任何的廣播等等的通知,誰也不知道他點選了哪個,是以這是行不同的。

那麼就隻能用一個沒有标題欄的純粹透明的activity來實作,在點選快捷方式的時候打開這個activity,然後開啟下載下傳任務,然後finish();

這個應該就可以實作了,但是如果你現在目前應用是打開的,那麼你點選快捷方式的話是會跳轉到你希望的activity,但是還會呼起程式的第一個activity。

代碼是這樣的

(1)

清單檔案中設定

可以複制代碼進行下測試,這樣如果應用沒有關掉每次都會呼起來,點選後退鍵就能看到。

為啥會這個樣子了,我查了很多資料,關于建立快捷方式,關于launcher啟動,清單檔案配置的很多文章,經過很多測試以後,發現原來是應為他們處在同一個task裡邊,倆個activity在同一個task裡邊,如果應用沒有關閉掉的話那麼在我調起我們要打開的activity的時候,會把這個task也拿進來,而應用的第一個activity還在,點選後退就會回到應用界面。所有隻要我們在啟動模式裡邊配置下就ok。

android:launchmode="singleinstance"

demo裡邊是我試驗widget實作快捷方式的代碼,對于程式沒有影響。

demo下載下傳位址:http://download.csdn.net/detail/u012808234/9361369