簡體   English   中英

在MainActivity中將變量聲明為靜態變量並從其他類訪問它們

[英]Declaring variables as static within MainActivity and accessing them from other classes

為了開發一些重要的變量,例如getApplicationContext()或其他變量(例如ButtonsEdittexts) ,很多時候我一直在開發android應用程序,這些變量通常在MainActivity之外不可訪問的,但在同一項目的其他一些類中卻是必需的 ,一直在使用這種技術,即

在MainActivity中 (對於getApplicationContext()情況)

private static Context context = null;

onCreate方法中,我這樣做:

context = getApplicationContext();

然后我使用以下方法訪問上下文(例如,顯示敬酒消息):

Toast.makeText(MainActivity.context,"Message",Toast.LENGTH_LONG).show();

在我的另一堂課上。 類似地, 獲取設置 EditText變量中的文本,依此類推。

我的問題是:

1)這是確定問題的最佳方法嗎?

2)如果沒有,還有更好的方法嗎?

3)如果否,該技術的缺點是什么?

3)可以將相同的技術擴展到維護中的功能嗎?

編輯 :我這里不需要其他活動,而我只是應用分成不同的類(或對象)的任務。

我的問題是:

1)這是確定問題的最佳方法嗎?

不,這不是解決此問題的最佳方法。

2)如果沒有,還有更好的方法嗎?

是的,要保存靜態信息,您應該使用類似headless的片段,以便android框架可以處理未使用的類和數據上的垃圾回收

3)如果否,該技術的缺點是什么?

缺點很多:)首先,內存泄漏會導致無法完全回收靜態var,因此它會保留在內存中。 其次,您不應該在其他地方使用main活動中的編輯文本,因為不會保證mainactivity仍然存在,因為如果您離開它,android可能會殺死它以節省內存。 所有屏幕都應該是獨立的,並且必須使用intent和Bundles()傳輸數據

3)可以將相同的技術擴展到維護性中的功能嗎?

創建位於靜態類(如助手)中的單獨的助手類。 MainActivity不是靜態類,也不應該是靜態類

暫無
暫無

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

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