我是Android的新手,所以对所谓的好/不好编码实践不太熟悉。
将Activity传递给另一个类作为参数是否被认为是不好的做法?
以下是我正在尝试做的事:
public class myClass {
MyActivity activity;
public myClass(MyActivity activity) {
this.activity = activity;
}
// do something involving 'activity'
}
我发现将活动作为参数传递给我的活动非常有用,因为(A)立即可以访问其中的所有属性,并且(B)非常干净;这样做的代码行最少。
我知道,在某些语言中,执行此类操作被视为“不好的做法”。我想知道是否适用于Android? (或者通常是Java)
答案 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)
这取决于您要执行的操作,但这可能是适当的。有时您可能只需要活动的上下文,而不是活动本身。这只是依赖注入的一种形式。