我是Java& Android开发,但我已经能够创建一堆乱七八糟的函数,子类和&粘贴在默认Android项目的MainActivity
类中时非常正常的常量。
这些功能的目的是“ping home”以让我的服务器知道何时发生应用程序安装。实现此目的所需的唯一代码是notifyMyServer()
标准代码块中的行MainActivity.java
:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
notifyMyServer("install"); /* Notify MyServer of an Installation */
}
}
粘贴使notifyMyServer()
直接在MainActivity.java
文件中工作的函数,子类,常量和导入对我来说似乎很脏。我希望能够将它们移动到自己的文件和/或库中,这样我就可以拖动它。将该文件放入我想要执行的其他应用程序中。
这通常如何完成?
答案 0 :(得分:3)
至少有两种方法可以解决这个问题:
1)创建一个NotifyActivity
类,可以按MainActivity
进行扩展,如@Tim's answer中所述。这使用了继承。
2)创建一个NotifyServer
类并在MainActivity
内创建一个实例,作为类变量或onCreate()
中的局部变量。这使用了合成。
通常在面向对象设计中,组合优先于继承。我强烈建议您了解这两个概念,因为您将在Java编程中反复使用它们。
答案 1 :(得分:2)
获取您的通知代码并创建一个只执行此通知的类(可以是库的一部分):
public class NotifyingActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
notifyMyServer("install"); /* Notify MyServer of an Installation */
}
}
然后在您的MainActivity中,只需继承NotifyingActivity
而不是Activity
。然后,当您在MainActivity中调用super.onCreate()时,将自动发生通知。