2016-12-04 93 views
1

我有一个关于java/android Studio中的类之间进行通信的问题。Android之间的通信

我有一个信息传递到海誓山盟这样四类:

MainActivity{ 

    Intent intent = new Intent (this, Main2Activity.class); 
    intent.putStringArrayListExtra("addressesList", addressList); 
    startActivity(intent); 

} 

Main2Activity{ 

    private ArrayList addressList = new ArrayList(); 
    addressList = getIntent().getStringArrayListExtra("addressesList"); 

    Calculate calulate = new Calculate(this); 
    calulate.getTravelInformation(); 

} 

Calculate{ 

    private ApiCall apiCall = new ApiCall(this); 

    private ArrayList addressesList = new ArrayList();  

    private Main2Activity activity; 

    public Calculate (Main2Activity a){ 
     activity = a; 
     addressesList = activity.addressList; 
    } 

    protected void doSomething(){ 
    } 

} 

ApiCall{ 

    private Calculate calculate; 

    protected ApiCall(Calculate a){ 
     calculate = a; 
    } 

    calculate.doSomething(); 

} 

所以我的问题是,是否有这样做的更好的方法,是没有任何理由为什么我不应该做这样的?

非常感谢您的帮助。

回答

2

第一件事,如果你想在活动之间进行沟通,意图是沟通的选择。 在Calculate中,如果您确实需要活动引用,则可以使用Activity类来提供可重用性,以防万一您要在多个位置使用此类时引用main2Activity引用。我不知道你打算在doSomething()中写什么,因为依赖于该方法使类更通用。这同样适用于ApiCall。因为你正在创建类之间的循环依赖关系

0

我明白你在经历同样的过程。让我们从一些概念开始吧:

声明“类之间的通信”背后的概念是,在编程中,类永远不会相互通信,实际上它们是活动。所以你有两个活动和两个辅助类。当您使用Intent时,Yeah Intent是您可以在不同活动之间进行沟通的方式(如共享数据等),并且我们觉得班级之间正在沟通。所以你已经使用Intent Object进行通信,这是非常正确的方式,没有问题,你正确地使用了,现在,你已经使用了两个辅助类,并且正在以正确的方式继续写下方法。祝你好运。