2017-07-30 58 views
1

我有三個活動 - 活動A,活動B,活動C。活動A是啓動器活動。從這個活動中,我去參加活動B.我怎樣才能溝通父母和孩子在Android的活動

活動B和活動C的定義如下:

public class B extends C 
public abstract class C extends BaseActivity 

現在我想在活動C語言帶來的任務完成後,做活動B的東西。我已經在谷歌和stackoverflow搜索。 This leads me to this answer.

但是,按照上面的回答函數stateChanged()的調用需要很多時間。有沒有更快的方法來做到這一點?

回答

0

可以使用EventBus圖書館活動B觸發事件時,任務活動Ç做

1

B活動是一個C活動。所以,如果你在C定義了一種方法,是繼承,即該方法爲B在同一個包公共保護或者包私人然後覆蓋的方法如下:

@Override 
protected void method(){ 
    super.method(); 
    myTaskAfterSuperMethodReturns(); 
} 

如果你是做一些異步任務,你可以更好地定義B類中的異步任務。

另一種方法是將doSomething定義爲類C作爲obstract方法並在B中實現。任務完成後致電doSomething。抽象doSomething將強制B實施它。

MainActivity.class

private static MainActivity mInstance; 

public static MainActivity getInstance(){ 
    return mInstance; 
} 

在onCreate方法初始化實例

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mInstance = this; 
} 

創建方法,使用方法:

-1

您也可以從另一個活動像這樣訪問MainActivity的方法下一個活動

@Override 
public void showData(){ 
    //do something here 
} 

要訪問它只是從另一個活動

(MainActivity.getInstance()).showData() 
+0

打電話的話,會不會超類依賴於子類? –

+0

這將有助於OP之間的通信片斷 –

+0

明確提及OP的情況。考慮在這種情況下回答。 –