簡體   English   中英

Android installLocation和BOOT_COMPLETED

[英]Android installLocation and BOOT_COMPLETED

我有一個使用AlarmService的Android應用程序。 根據文檔,我不應該允許安裝/移動此應用程序到外部存儲。 但是,用戶不理解這一點(可能是由於某些設備上的內部存儲空間很小) - 並要求選擇在外部存儲上安裝(通過低星級評級)。

我需要在啟動時重新注冊警報並讓BroadcastReceiver監聽BOOT_COMPLETED。 但是,對於安裝在SD卡上的應用程序,不會調用此方法,因為尚未安裝該應用程序,因此會觸發該意圖。 遺憾的是,EXTERNAL_APPLICATIONS_AVAILABLE也沒有 - 因此我沒有得到啟動的通知,因此沒有更改重新設置警報。

這種困境有什么辦法嗎?

對不起,不,這不是你可以解決的問題。 這就是為什么我們說你不應該把應用程序放在SD卡上做這些事情。

最壞情況選項:創建第二個應用程序(重量輕,無論它無法安裝在SD卡上),它將在啟動時監聽BOOT_COMPLETED事件,並在它啟動時觸發您的主應用程序可用。 告訴用戶他們必須安裝它才能使您的應用程序在安裝到SD卡時正常工作。

如果您的應用程序移動到SD卡時發生事件/觸發器,您可以彈出通知,告訴他們從市場上抓取第二個應用程序。

我知道這是一個可怕的選擇,但如果你絕望,它會奏效。

好吧,如果用戶要求轉移到SD的原因是由於尺寸限制(即您的應用需要大量空間),那么我建議存儲您的應用在SD卡上使用的數據但限制應用安裝位置到內部存儲。

向您的用戶解釋他們是否要求您正在開發的平台上沒有意義或在技術上不可行的事情:如果他們繼續問我那么我會說只是忽略它們。 你的星級評分會受到打擊,但令人痛苦的是,這無法解決問題。

您已經對問題有了一些很好的答案 - 這是為了澄清,糾正或以其他方式解決您在評論中提出的要點。

如果應用程序只有幾MB,用戶想要這個

有一天,用戶可能還會決定他們希望您的應用程序是粉紅色的,或3D的,或者能夠與他們的Kenmore洗碗機接口,這些都不在您的計划中。 因此,我建議您提出一個與客戶溝通的系統,以解釋為什么您的應用不是粉紅色,不是3D,不是洗碗機,而是存儲在外部存儲上。

現在,我很樂意承認Android Market應該為這種溝通渠道提供更多幫助(例如,回復評論)。

提出長期技術解釋(==借口)並不是正確的答案

非常歡迎您的意見。 我希望你喜歡粉紅色。

他們在想什么,設計一個只能在下次重啟之前工作的鬧鍾服務?

他們不希望應用程序注冊警報,或多或少地忘記它們。 他們希望用戶能夠在重新啟動后盡可能以干凈的方式開始。

好吧 - 即使像HTC Desire這樣的“強效”手機也只有150 MB的用戶空間(en.wikipedia.org/wiki/HTC_Desire)。 那太可悲了。

隨意使用HTC。 我不相信他們經常閱讀StackOverflow。

Android在這里安裝應用程序的解決方案充其量只是半心半意

不,它基本上受USB大容量存儲模式的性質限制。 長期解決方案是消除內部和外部存儲之間的划分,這是Honeycomb中正在進行的一個過程。

用戶(使用不是工程師的電話的普通人)在UI中完全沒有受過教育

我同意可以采取更多措施來幫助用戶了解為什么應用程序可能無法移動到外部存儲。

人們想知道為什么Android團隊在應用程序設置中添加了“移動到SD卡”選項,因為這對於那里的大量應用程序並不真正起作用,但是對於那些無法實現的功能造成了不合理的還押。平台

它主要用於游戲,這是具有大量存儲需求的主要應用類別。 他們也往往不需要外部存儲應用程序無法正常工作的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM