从Android';将MainActivity类添加到其自己的库或文件中

从Android';将MainActivity类添加到其自己的库或文件中,android,android-library,Android,Android Library,我不熟悉Java和Android开发,但我已经能够创建一堆函数、子类和常量,当粘贴到默认Android项目的MainActivity类中时,这些函数、子类和常量工作得非常好 这些功能的目的是“ping home”以让我的服务器知道何时安装了应用程序。实现这一点所需的唯一代码是MainActivity.java的标准代码块中的notifyMyServer(): public class MainActivity extends Activity { @Override publi

我不熟悉Java和Android开发,但我已经能够创建一堆函数、子类和常量,当粘贴到默认Android项目的
MainActivity
类中时,这些函数、子类和常量工作得非常好

这些功能的目的是“ping home”以让我的服务器知道何时安装了应用程序。实现这一点所需的唯一代码是
MainActivity.java的标准代码块中的
notifyMyServer()

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
文件中工作的函数、子类、常量和导入对我来说似乎很脏。我希望能够将它们移动到自己的文件和/或库中,这样我就可以将该文件拖放到其他我想执行相同跟踪的应用程序中


这通常是如何完成的?

获取通知代码并创建一个仅执行此通知的类(可以是库的一部分,也可以不是库的一部分):


然后在MainActivity中,只需继承
NotifyingActivity
,而不是
Activity
。然后,当您在MainActivity内部调用super.onCreate()时,通知将自动发生。

至少有两种方法可以解决此问题:

1) 创建一个可由
MainActivity
扩展的
NotifyActivity
类,如中所述。这使用了继承

2) 创建一个
NotifyServer
类,并在
MainActivity
中创建该类的实例,在
onCreate()
中作为类变量或局部变量。这是用构图


通常在面向对象设计中,组合优先于继承。我强烈建议您学习这两个概念,因为您将在Java编程中反复使用它们。

谢谢Tim。我这样做了,但是我现在在尝试运行它时遇到了很多NullPointerException。
public class NotifyingActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        notifyMyServer("install"); /* Notify MyServer of an Installation */
    }
}