2012-02-28 57 views
1

您認爲如何? 我認爲要創建一個小應用程序,並將所有內容放在一個Activity上。 只需更改內容視圖。擺脫共享數據的問題, 從最近的應用程序和更多的開始。 我知道這樣我可以得到更多的問題,比如stackoverflow。 但有人嘗試過嗎?Everything on Activity - Android

回答

3

我的朋友和我在做第一個應用程序和他一起堅持,使它象that..It是laggy,不穩定,它可以是定性爲「最糟糕的做法」的例子..

,我不同意,它運行得更快,我同意你需要做額外的編程,如果u遵守良好做法的Android默認情況下會自動處理(如BACK按下),我相信它會導致大量的內存泄漏,不必要的內存使用以及性能下降。總而言之,它不會留下好印象的人誰在使用它..

如果你正在做只是爲了避免共享數據和其他「問題」,這是更好的投資一些時間在這個主題和嘗試瞭解更多關於它們的信息,以適當的方式開始使用它們。當你更好地瞭解框架時,你會明白爲什麼把這些想法放在一個活動中是不好的。

道德的身上我學到

  1. 這是可怕的想法把一切都在一個活動,如果你在現實中的應用程序需要更多的組件! 大段引用

  2. 選擇編程伴侶明智!

  3. 瞭解學習瞭解..

好運;)

+0

謝謝,這樣一個答案,我很期待指點。我知道如果我們關於一些更大的應用程序,這是非常糟糕的方法。 – goodm 2012-02-28 09:52:31

+0

你歡迎。享受Android Wonderland;) – Ewoks 2012-02-28 09:54:41

2

是的......這絕對是可行的。然而,除了最基本的應用程序之外,這是一個非常糟糕的主意。當我剛開始創建一個擁有5個屏幕的應用程序時,我有同樣的衝動。它很快就變得比它值得的更麻煩,而且一項活動的代碼太多了,這是一場噩夢。

如果你的目標蜂窩和>您應該只使用片段。它更好。

如果你這樣做的主要動機是從Activity到Activity傳遞數據的複雜性,你應該考慮擴展Application並且只是存儲你所有的持久數據(我的意思是你在應用程序實際運行時需要的東西,不是當它背景)在那裏。

如果您沒有與用戶進行任何實質性的交互,只想用最少的功能交換出XML視圖,那麼您可以使用一種Activity方法,但對於大多數應用程序來說,這太雜亂了。

+0

這是完整的理論問題。絕大多數人/公司爲這兩個平臺(Android和iPhone)訂購應用程序,他們總是希望該應用程序看起來一樣。我試圖解釋這只是不可能的,他們可以相似但不完全一樣。比你開發iOS應用程序,你把所有的元素放到主視圖中,然後你管理它們。這就是爲什麼我很好奇,如果有可能在Android上做同樣的模型。 – goodm 2012-02-28 09:03:39

1

是,一對夫婦的我的第一個應用程序使用的正是這種方法作了。有一些優點,如:

  1. 它通常比從一個活動更改到另一個更快一點。
  2. 你只有一個Activity班。

和一些缺點:

  1. 如果你有太多的屏幕時,您可能會混淆自己。
  2. 您必須自己編寫屏幕更改邏輯。
  3. 這不被視爲Android開發的慣例。

無論如何,這種方法是有效的,所以您決定是否使用它。希望這可以幫助。

0

我建議你使用片段。這些片段可以通過一項活動進行調用。雖然我確信那個簡單的活動會做,因爲我使用了一個活動類來處理片段,但我還使用了更多的活動類。

對於離。您可以創建不同的片段,並呼籲他們在活動等; ---

public void onStatusClick(View view) 
    { 
     setFragment(new HomeFragment()); 
    } 

    public void onNotificationsClick(View view) 
    { 
     setFragment(new NotificationsFragment()); 
    } 


    public void onContactClick(View view) 
    { 
     setFragment(new ContactFragment()); 
    } 

    public void setFragment(Fragment fragment) 
    { 
     FrameLayout framelayout = (FrameLayout) findViewById(R.id.frme_container); 

     FragmentTransaction ft = getFragmentManager().beginTransaction(); 
     ft.replace(framelayout.getId(), fragment).commit(); 

    } 
+0

據我所知片段我只能從Android 3.0的,我開發移動應用程序,所以我從2.1/2.2 – goodm 2012-02-28 09:05:35

0

如果你可以在移交後放棄樣的項目,那麼你可以使用一個類

脫身

但是,如果您的客戶是長期的,並且會請求將來的更改和/或擴展,那麼最好不要將所有內容都轉儲到一個類中。變化很難預測,如果一切都在一個活動中,您可能會發現自己重構了所有內容。

0

我同意使用的所有活動和片段的陽性。我的紙牌遊戲應用程序最初編寫了1個活動和7個視圖。最終我重構了應用程序以使用7個活動。應用程序的啓動時間顯着下降。但是,當使用7個視圖時,應用程序從未遇到內存問題,並且一旦加載,屏幕之間快速閃爍。

所以我的結論是,使用視圖與活動(或片段)更是一個權衡比其他的答案提出的扣籃的。視圖需要較長時間才能初始加載,但超級快速交換。活動是模塊化的,只在需要時才加載。使用「活動」時,內存更少,加載時間更快,但折衷是更復雜的代碼,屏幕間的轉換更慢。

最後,你不必使用全有或全無的方式。您始終可以將兩種解決方案混合到您的應用程序中,這正是我最終解決的問題對於經常使用的主屏幕,我使用了不常使用的屏幕和View/ViewSwitcher。它是兩全其美的。