2011-01-11 76 views
4

我基本上試圖做的是將我的活動的實例傳遞給另一個將構建動態UI的對象。安全地將活動的實例傳遞給另一個對象?

我這樣做的主要原因是保持Activity類的清潔。

這樣做有沒有什麼影響?它會影響垃圾收集並導致內存泄漏?

下面是我在做什麼的例子:

活動:

/* uses the instance of the Activity to build Views which are loaded from XML files (for non technical users to add content */ 
ContentHelper ch = new ContentHelper(MyActivity.this); 

我應該保持活動中的動態視圖建築,或者是它好嗎通過實例的其他類去做這個?

如果我把它的活動,只是感覺臃腫我,更難管理。

回答

3

在我看來,這是不通過地方活動的一個好主意 - 其實我不知道這是否會做任何事情。

你可以做的是:

1 - 您可以創建自己的類,擴展視圖類,創建用戶界面那裏。 你必須傳遞給該類的是你的活動環境!

例如:

class Custom_UI_Builder extends View { 
    public Custom_UI_Builder(Context cxt) { 
     super(cxt); 
     // more stuff - your UI components... 
    } 
} 
在使用你 'UI類'

public myActivity extends Activity{ 
    @Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    myView = new Custom_UI_Builder(this); 

      //what every else you need... 

     mainLayout = new LinearLayout(this.getApplicationContext()); 
    mainLParam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
    mainLayout.setLayoutParams(mainLParam); 
    mainLayout.setOrientation(LinearLayout.VERTICAL); 
      mainLayout.addView(myView, LayoutParams.MATCH_PARENT, 390); 
    setContentView(mainLayout); 

}} 

2的活動

- 然後你就可以在你的活動創建custom_UI_builder類的一個實例。

我不確定這是否會對內存負載產生任何不良影響。

希望它能工作!

+0

我明白你要去哪裏了,但這與我所做的幾乎是一樣的,除了你在課堂上擴展視圖。你仍然在傳遞一個活動的實例,這是我的擔憂。問題是,是否可以通過該實例 - 這是一個內存和設計問題... – xil3 2011-01-11 12:22:17

相關問題