将Activity作为参数传递是不好的做法吗? -Android

时间:2019-07-30 19:49:55

标签: android android-activity

我是Android的新手,所以对所谓的好/不好编码实践不太熟悉。

将Activity传递给另一个类作为参数是否被认为是不好的做法?

以下是我正在尝试做的事:

public class myClass {

    MyActivity activity;

    public myClass(MyActivity activity) {
        this.activity = activity;
    }

    // do something involving 'activity'
}

我发现将活动作为参数传递给我的活动非常有用,因为(A)立即可以访问其中的所有属性,并且(B)非常干净;这样做的代码行最少。

我知道,在某些语言中,执行此类操作被视为“不好的做法”。我想知道是否适用于Android? (或者通常是Java)

2 个答案:

答案 0 :(得分:2)

您可以使用Activity继承自的Context。传递Context更有意义,因为这通常是Context类发生的事情。上下文可能具有您需要的许多方法。

public class myClass {

    Context context;

    public myClass(Context context) {
        this.context = context;
    }

    // do something involving 'activity'
}

活动的继承树:

java.lang.Object
   ↳    android.content.Context
       ↳    android.content.ContextWrapper
           ↳    android.view.ContextThemeWrapper
               ↳    android.app.Activity

https://developer.android.com/reference/android/app/Activity

答案 1 :(得分:1)

这取决于您要执行的操作,但这可能是适当的。有时您可能只需要活动的上下文,而不是活动本身。这只是依赖注入的一种形式。