2011-06-13 45 views
2

我在尋找,開始從一個類,它是不是一個活動的意圖的最佳方式的意圖,而是一個Activity類的包含的對象。如何啓動從包含的類的活動

例如Activity類:

Class MainActivity extends ListActivty 
{ 
... 
TestLauncher tester; 
} 

而且我要開始從意圖類:

Class TestLauncher 
{ 
    public TestLauncher() 
    { 
     //Code to create an intent needs a Context 
     //Intent i = new Intent(Context, class) 

     //Code to start activity needs to be called with an Activity 
     //Activity.StartActivity(i); 
    } 
} 

什麼是建築做到這一點的最好方法是什麼?我是否應該將MainActivity作爲參數傳遞給TestLauncher的構造函數?還是有更好的方法,我不知道?

+0

@J J:「我應該將MainActivity作爲參數傳遞給TestLauncher的構造函數嗎?」 - 是的,或者只是將'this'作爲一次性傳遞給'TestLauncher'中的任何方法來啓動活動。 – Squonk 2011-06-13 22:33:04

回答

4
Class TestLauncher 
{ 
    public TestLauncher (Context c) 
    { 
     Intent i = new Intent(c, YourActivity.class) 
     c.startActivity(i); 
    } 
} 

TestLauncher ts=new TestLauncher(getApplicationContext()); 
+0

請勿使用'getApplicationContext()'。只要傳遞'this'(即活動上下文)即可。使用'getApplicationContext()'可能會導致意外的行爲。 – Squonk 2011-06-13 22:39:57

+0

無法傳遞活動上下文導致內存泄漏? – 2011-06-13 22:51:04

+2

嗯,棘手的一個。是的,在有些情況下Activity上下文可能造成泄漏,但在OP與內部類的問題的情況下被使用,直接開始另一個活動,它的使用只是爲了這一點。好點 - 我收回我說的話,使用應用程序上下文可能是有效的,但我傾向於不使用它,除非我特別需要它。 – Squonk 2011-06-13 23:09:40

相關問題