2017-07-30 46 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的情况。考虑在这种情况下回答。 –

相关问题