2016-10-12 25 views
0

我有一個android應用程序能夠通過VIEW intent打開某個文件類型。android:如何記住通過ACTION VIEW intent傳遞的文件

第一次使用我的應用程序打開文件後,我希望應用程序「記住」該文件,以便用戶可以選擇從應用程序內的「最近」文件列表再次打開它。 ..

我的問題是:什麼是實現這種「記憶」的最佳途徑 - 我應該:

  1. 自動複製傳遞給我的應用程序爲我的應用程序本身的存儲區域的任何文件,然後在那裏列出「最近/舊」文件?

  2. 或者,我是否應該記錄我的應用程序先前已通過的文件列表,並在必要時通過相同的路徑訪問它們?如果建議這樣做,是否有任何保證能讓我稍後再訪問它們? (我不這樣想!)

選項1.好像更多的工作,需要加倍傳遞給我的應用程序的所有文件的存儲空間,但將保證這些文件將在以後的訪問。選項2很容易,如果這些文件將來可以被我的應用程序讀取,並且由於某種原因不會被重命名/刪除 - 看起來並不能保證這一點,儘管...

如果有幫助,我期望大多數文件傳遞給我的應用程序通過用戶的瀏覽器來從「下載」,但有些可能來自電子郵件/其他應用等

感謝

+0

當然,你不會做一個副本。但是如果你想要的話,你可以記住路徑或內容方案。 – greenapps

回答

1

我會去的選項#3:刪除提議的特性。

由於DeeV在一個現在被刪除的答案中指出,選項#1對於「最近的文件」列表並不是一個很好的解決方案。對於其他動詞而言,這將是「記住」的正確選項,例如「導入」。

選項#2不會工作很多時間。除了(甚至代替)file方案之外,您的應用還需要支持content方案。默認情況下,您只有權訪問contentUri的內容,直到您的過程終止(最好)。你可能能夠takePersistableUriPermission()獲得持久的訪問權限,但這不會工作很多時間—它取決於其他應用程序是否授予您這種訪問權限。因此,你可能會記得一個Uri,但記住對你沒有好處。

+0

謝謝,這是一個明智的做法。我想可以詢問用戶是否要「導入」文件,然後執行選項1。儘管如此,我仍然不禁覺得缺乏自然的做法限制了Android作爲高效環境的潛力......我想PC還是有生命力的! – jcdude

相關問題