假设myFunction()
和MainActivity
类都使用了MyBroadcastReceiver
。现在,我只是将myFunction设置为MainActivity的public static
方法,所以在MyBroadcastReceiver中我只是将函数称为MainActivity.myfunction()
。我不确定这是否是一种公认的做法,我希望有人可以为我提供一些启示。
答案 0 :(得分:0)
这可能取决于所讨论的方法的作用。
如果它是一个可以是静态的简单助手类型方法,你可以在任何地方创建它,但是这些方法的单独助手类将帮助你保持代码清洁。
您还可以创建自定义应用程序类并将方法放在那里。您可以轻松访问应用程序类并从那里使用它。
要记住的一件事是,您需要注意不要泄漏内存,尤其是当您将Context
对象传递给此类方法时。您可以传递上下文,但要小心使用它。如果您只是在静态方法中使用它,那没关系。如果将其分配给另一个静态变量,则可能会发生内存泄漏。
答案 1 :(得分:0)
我认为这不是正确的方法。但是,这取决于使用myFunction()
方法的资源。如果你不使用某些特定的MyActivity
个实例并且你说它是一个“独立”的方法,我会在这样的单例中声明它:
public class YourPublicFunctions extends Application {
private static Context context; // Just if needed
// Just if needed
public void onCreate(){
super.onCreate();
YourPublicFunctions.context = getApplicationContext();
}
public int myFunction() {
...
}
}
所以这样,要调用它,你可以使用:
YourPublicFunctions myfuncs = ((YourPublicFunctions) getApplicationContext());
int value = myfuncs.myFunction();
注意:这种方法是内存泄漏安全的。
答案 2 :(得分:0)
我想说,从严格的OOP方法来看,它完全取决于两个类交互的上下文。
我可以想到三个方法:
myFunction()属于第三类
public class Communicator
{
public static myFunction()
{
}
}
Communicator.myFunction();
myFunction()是继承的
public MainActivity extends Communicator
{}
public MyBroadcastReceiver extends Communicator
{}
myFunction();
myFunction()属于其中一个类
<Your implementation>