3

私はJavaとAndroidの開発は初めてMainActivityですが、デフォルトのAndroidプロジェクトのクラス内に貼り付けたときに完全に機能する関数、サブクラス、および定数の混乱を作成することができました.

これらの機能の目的は、アプリケーションのインストールがいつ行われたかをサーバーに知らせるために「家にping」することです。これを実現するために必要な唯一のコードは、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私には汚いようです。それらを独自のファイルやライブラリに移動して、同じ追跡を実行したい他のアプリにそのファイルをドラッグ アンド ドロップできるようにしたいと考えています。

これは通常どのように行われますか?

4

2 に答える 2

3

これを解決するには、少なくとも 2 つの方法があります。

1)@Timの回答で説明されているように、NotifyActivityによって拡張できるクラスを作成します。これは継承を使用します。MainActivity

2)NotifyServerクラスを作成し、そのインスタンスをMainActivityクラス変数またはローカル変数として内に作成しますonCreate()。これは合成を使用します。

一般に、オブジェクト指向設計では、継承よりも構成が優先されます。Java プログラミングで何度も使用するため、これらの概念の両方について学習することを強くお勧めします。

于 2012-10-31T22:09:06.187 に答える
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()を呼び出すと、通知が自動的に発生します。

于 2012-10-31T21:56:05.923 に答える