Android 開發之static引發的冤案

來源:互聯網
上載者:User

標籤:post   虛擬機器   roi   通過   一個   開啟   data   取資料   可見   

         前段時間在android手機系統上開發一個小東西,先介紹一下他吧: 就是當手指點擊螢幕不論什麼地方的時候會出現點擊的特效,就是在你點擊螢幕的地方會出現各種效果,比方:雪花紛飛;出現五彩的肥皂泡;鮮花盛開等等! 這裡我把這個效果給一個名字:魔法手指. 興許我會在撰寫一篇部落格來敘述怎樣實現的!今天這裡主要說一下開發中遇到的一個問題.

         因為,我的這個效果的實現是在不論什麼介面,也就是說在不論什麼activity(不論什麼app), 並且還能夠通過手機設定裡面來設定不同的點擊特效! 或者開啟"魔法手指". 聰明的我第一個想到了用一個static的變數來記錄"魔法手指"的各種狀態!這樣就不用每次都去讀取資料庫來更新"魔法手指"的狀態了.

        於是乎, 我為"魔法手指"定義了一個工具類:FingerMagic_tool. 而且這個工具類我採用的是單列模式,在這個工具類裡面我定一個static的變數來記錄"魔法手指"的各個狀態!當我在手機系統的設定裡面去配置了新的"魔法手指"狀態的時候,我就同一時候去更新FingerMagic_tool裡面的記錄"魔法手指"狀態的static的變數!一切看起來都天衣無縫!只是現實卻是殘忍的! 實際的效果卻是:根本無法擷取真正的當前的"魔法手指"狀態! 

        這是為什麼呢?

        Android系統上執行的各個app實際上並非在一個虛擬機器上執行的,一個app執行是須要系統為他分配一個獨立的虛擬機器的,也就是說Android系統上各個app都是執行在自己的獨立的虛擬機器上的! 所以, static 單例模式對於app間是不可見的! 所以一切的想法都是一場夢!

Android 開發之static引發的冤案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.