Android 将活动作为参数传递是否不好安卓
我是Android新手,所以不太熟悉什么是好的/坏的编码实践 将一个活动作为参数传递给另一个类是否被认为是不好的做法 下面或多或少是我想做的:Android 将活动作为参数传递是否不好安卓,android,android-activity,Android,Android Activity,我是Android新手,所以不太熟悉什么是好的/坏的编码实践 将一个活动作为参数传递给另一个类是否被认为是不好的做法 下面或多或少是我想做的: public class myClass { MyActivity activity; public myClass(MyActivity activity) { this.activity = activity; } // do something involving 'activity' } 我
public class myClass {
MyActivity activity;
public myClass(MyActivity activity) {
this.activity = activity;
}
// do something involving 'activity'
}
我发现将活动作为参数传递给我的活动非常有用,因为(a)可以立即访问其中的所有属性,并且(B)非常干净;这样做所需的最少代码行
我知道在某些语言中,这样做被认为是“不好的做法”。我想知道Android是否也是这样?(或者一般来说是Java)这取决于您试图做什么,但它可能是合适的。有时,您可能只需要活动的上下文,而不需要活动本身。这只是依赖注入的一种形式 这取决于你想做什么,但也可能是适当的。有时,您可能只需要活动的上下文,而不需要活动本身。这只是依赖注入的一种形式 您可以处理活动继承自的上下文。传递上下文更有意义,因为上下文类通常都是这样。上下文可能有许多您需要的方法
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
您可以处理活动继承自的上下文。传递上下文更有意义,因为上下文类通常都是这样。上下文可能有许多您需要的方法
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
要访问属性,请编写一个可以从中获取信息的类。要从一个活动到另一个活动获取信息,请使用其意图。只有当您的
myClass
实例比您的MyActivity
实例寿命更长时,这才有问题。如果是,您将泄漏MyActivity
。但是,如果myClass
实例的寿命不会超过活动,则没有问题。若要授予属性访问权限,请编写一个可以从中获取信息的类。要从一个活动到另一个活动获取信息,请使用其意图。只有当您的myClass
实例比您的MyActivity
实例寿命更长时,这才有问题。如果是,您将泄漏MyActivity
。但是,如果myClass
实例的寿命不会超过活动,则没有问题。