2014-06-15 94 views
0

我想在類中完成一個靜態方法來完成一個活動。我的意思是這樣的: 活動A,活動B,活動C,班活動殺手。 類ActivitiesKiller具有用於精加工的活性A,B或C.從靜態方法完成活動

一個例子的靜態方法: 我的運行過程中出現的類是B和我要完成活性的,因此我將撥打:

ActivitiesKiller.activityKiller(A); 

那可能嗎?。 先進的感謝

我正在做這樣的事情,但它沒有工作。

public class ActivitiesKiller { 
//..... 

public static void activityKiller(Activity activity){ 
activity.finish();} 


} 
+0

這聽起來像一個可怕的想法,而且是可能的,只有你犯了一個靜態的參考活動,你不應該這樣做,因爲它會導致內存泄漏。 – EpicPandaForce

+0

也許最好解釋一下你想達到的目標,我們可以提供幫助,將靜態存儲爲「活動」是個不錯的主意,就像朱登登說的那樣。 – Wakim

+0

@Wakim只是我在學習的好奇心。 – JoCuTo

回答

4

雖然這聽起來不像是個好主意,你需要做的是使靜態參考活動對創建和空它們的破壞。

public class ActivityA extends Activity 
{ 
    public static Activity self; 

    @Override 
    public void onCreate(Bundle saveInstanceState) 
    { 
     super.onCreate(saveInstanceState); 
     self = this; 
    } 

    @Override 
    public void onDestroy() 
    { 
     super.onDestroy(); 
     self = null; 
    } 
} 

然後你需要做以下

public class ActivitiesKiller 
{ 
    public static void activityKiller(Activity activity) 
    { 
     if(activity != null) 
     { 
      activity.finish(); 
     } 
    } 
} 

,你會叫的

ActivitiesKiller.activityKiller(ActivityA.self); 
+0

謝謝@Zhuinden。 – JoCuTo