回答
您有幾種選擇:
ContentProvider - 沒有明確需要基於以上
SQLite
數據庫。清單屬性
android:sharedUserId
從文檔:
,將與其他 應用程序共享一個Linux用戶ID的名稱。默認情況下,Android會爲每個應用程序分配自己的 唯一用戶標識。但是,如果對於兩個或更多應用程序將此屬性設置爲相同的值 ,則它們將共享相同的ID - ,前提是它們也由相同的證書籤名。 具有相同用戶標識的應用程序可以訪問彼此的數據,並且如果需要,可以在相同的過程中運行。
見http://developer.android.com/guide/topics/manifest/manifest-element.html#uid
PackageManager.getResourcesForApplication()檢索與應用程序相關的資源。
用法:
PackageManager pm = getPackageManager(); try { Resources resources = pm.getResourcesForApplication("com.example.app"); int id = resources.getIdentifier("ic_launcher", "drawable", "com.example.app"); Drawable d = resources.getDrawable(id) } catch (NameNotFoundException e) { e.printStackTrace(); }
我認爲ContentProvider是您的最佳選擇。它們專門設計用於「在多個應用程序之間共享數據」。 下面是developer.android參考: http://developer.android.com/reference/android/content/ContentProvider.html 這裏是一個詳細的指南: http://www.vogella.com/articles/AndroidSQLite/article.html
我不會將圖像存儲在數據庫中。插件將由第三方開發者提供,並且實現整個SQLite來存儲圖像將會是一個問題。我正在考慮傳遞資源ID和訪問圖像。 – hsz 2012-07-24 07:56:27
- 1. 應用程序之間共享在C#
- 2. 應用程序和共享會話之間的共享DLL
- 3. Android之間共享應用程序之間的文件
- 4. 線程池是否在應用程序域之間共享?
- 5. ASP.NET MemoryCache在應用程序間共享
- 6. iOS在主應用程序和共享分機之間共享.h文件
- 7. 在使用gems的Rails應用程序之間共享模型
- 8. Android在兩個應用程序之間共享用戶ID
- 9. Android應用程序:在用戶之間共享數據
- 10. Symfony2 - 在多個應用程序之間共享用戶
- 11. 在Android應用程序用戶之間共享數據
- 12. 在幾個後端應用程序之間共享用戶表
- 13. 在Android應用程序用戶之間共享令牌(數據)
- 14. 在Node.js應用程序和Rails應用程序之間共享會話
- 15. 在Android應用程序和Jersey服務器應用程序之間共享類
- 16. WatchOS 2.0在iOS應用程序和WatchOS應用程序之間共享數據
- 17. 在grails應用程序和非grails應用程序之間共享域對象
- 18. 如何在兩個ASP.NET應用程序之間共享應用程序緩存
- 19. 在父應用程序和子應用程序之間共享身份驗證
- 20. 在Angular應用程序之間共享代碼
- 21. 在兩個android應用程序之間共享憑據
- 22. 在應用程序之間共享的模型:DataMapper Rails其他
- 23. 在Android應用程序之間共享信息
- 24. OSX iCloud在應用程序之間共享文件
- 25. 在多個應用程序之間共享數據
- 26. 在不同的Tomcat Web應用程序之間共享憑證
- 27. 在應用程序之間共享信息
- 28. 在Qt應用程序之間共享Qt庫
- 29. 在兩個android應用程序之間共享sqlite數據庫
- 30. Dropwizard:在應用程序之間共享配置
謝謝。如果插件定義了hdpi/mdpi/ldpi drawables呢?如果我將調用'getDrawable',它會爲我提供有效的嗎? – hsz 2012-07-24 08:52:54
是的,它給你一個有效的。通過調用'getResources()'來獲取應用程序包的'Resources'實例,您將獲得與您獲得的'Resource'對象相同的資源。由於您無法訪問插件apk的'R.java'常量定義,因此必須按名稱獲取資源。你也可以直接查看插件的'R.java',並使用常量'public static final int ic_launcher = 0x7f02001f;'作爲id,但這有點棘手。 – biegleux 2012-07-24 09:10:09
我已經註冊了'BroadcastReceiver'來獲取關於已安裝插件的信息,所以我也可以傳遞插件drawable的資源ID。好吧,我明白一切。非常感謝biegleux! – hsz 2012-07-24 09:14:11