第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Android應(yīng)用程序類持久化數(shù)據(jù)

使用Android應(yīng)用程序類持久化數(shù)據(jù)

溫溫醬 2019-07-02 16:54:02
使用Android應(yīng)用程序類持久化數(shù)據(jù)我正在開發(fā)一個相當(dāng)復(fù)雜的Android應(yīng)用程序,它需要大量有關(guān)應(yīng)用程序的數(shù)據(jù)(我可以說,總共大約500 KB-這對于移動設(shè)備來說很大嗎?)據(jù)我所知,應(yīng)用程序中的任何方向變化(更準確地說,是在活動中)都會導(dǎo)致活動的徹底破壞和再創(chuàng)造。根據(jù)我的發(fā)現(xiàn),Application類沒有相同的生命周期(也就是說,對于所有意圖和目的,它總是被實例化)。在應(yīng)用程序類中存儲狀態(tài)信息,然后從活動中引用狀態(tài)信息有意義嗎?或者,由于移動設(shè)備上的內(nèi)存限制,這通常不是“可接受的”方法嗎?我非常感謝關(guān)于這個話題的任何建議。謝謝!
查看完整描述

3 回答

?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

我不認為500 kb會有那么大的影響。

您所描述的正是我如何處理在活動中丟失數(shù)據(jù)的問題。我在Application類中創(chuàng)建了一個全局單例,并且能夠從我使用的活動中訪問它。

如果要經(jīng)常使用數(shù)據(jù),可以在GlobalSingleton中傳遞數(shù)據(jù)。

public class YourApplication extends Application {     
     public SomeDataClass data = new SomeDataClass();}

然后在任何活動中調(diào)用它:

YourApplication appState = ((YourApplication)this.getApplication());appState.data.UseAGetterOrSetterHere(); 
// Do whatever you need to with the data here.

我討論這件事在我的博客文章里,在“Global Singleton”一節(jié)下。


查看完整回答
反對 回復(fù) 2019-07-02
?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

指望的人Application實例是錯誤的。一開始,看起來好像Application存在的時間,只要整個應(yīng)用程序進程存在,但這是一個錯誤的假設(shè)。

操作系統(tǒng)可能在必要時殺死進程。所有的過程都被劃分為5級的“可殺死性”。在文檔中指定.

因此,例如,如果您的應(yīng)用程序由于用戶應(yīng)答來電而進入后臺,那么取決于RAM的狀態(tài),操作系統(tǒng)可能(也可能不會)殺死您的進程(銷毀Application實例)。

我認為更好的方法是將數(shù)據(jù)保存到內(nèi)部存儲文件然后在您的活動恢復(fù)時閱讀它。

最新情況:

我得到了很多負面反饋,所以是時候補充一個澄清了。:嗯,一開始我確實使用了一個錯誤的假設(shè),即狀態(tài)對于應(yīng)用程序來說是非常重要的。但是,如果您的應(yīng)用程序有時會丟失狀態(tài)(可能是一些只需重新閱讀/重新下載的圖像),那么將其保留為Application.


查看完整回答
反對 回復(fù) 2019-07-02
  • 3 回答
  • 0 關(guān)注
  • 388 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號