2017-08-12 12 views
0

私は、MainActivityと呼ばれるセカンダリクラスと、というセカンダリクラスを持っています。があります。 2つのクラスは、以下のコードとして定義されています。MainActivityクラスを挿入すると、クラスが拡張されます。 私はonStop()メソッドを持っている2つのクラスで、クラスを挿入します。私は@Overrideを持っています。問題は、のクラスでのonStopの実行時に、onStopメソッドMainActivityも呼び出されることです。どうして?どのようにできるのか? ありがとうございました!セカンダリクラスのオーバーライドメソッド

public class MainActivity extends AppCompatActivity { 
    public void onStop() { 
     //some code 
     super.onStop(); 
    } 
} 


public class Insert extends MainActivity { 
    @Override 
    public void onStop() { 
     //some code 
     super.onStop(); 
    } 
} 
+1

'Insert'オーバーライドメソッドに' super.onStop – dewarder

+0

@Googleはい! 2つのクラスの両方のメソッドで。私は方法の終わりにそれを置く(閉じこもり防止の前に) – mekki10

答えて

0

onStopは、アクティビティのライフサイクルが提供するデフォルトの方法です。あなたのカスタムメソッド名にonMyStop()と言うことができ、そのメソッドをinsertクラスのonStopからsuper.onMyStop()を使って呼び出すことができます。

0

理由はInsertオーバーライドされたメソッドでsuper.onStop()を呼んでいます。しかし、super.onStopを呼び出すことは必須です。これを修正するにはdoOnStopのような別のメソッドをMainActivityに作成し、onStopMainActivityに呼び出し、Insertに置き換えてsuper.doOnStopを呼び出さずにオーバーライドします。ここで

は、コードSAMPEです:

public class MainActivity extends AppCompatActivity { 

    public void onStop() { 
     super.onStop(); 
     doOnStop(); 
     //some code 
    } 

    public void doOnStop() { 

    } 
} 


public class Insert extends MainActivity { 

    @Override 
    public void doOnStop() { 
     //some code 
    } 
} 
+0

ありがとう! :) できます! – mekki10

関連する問題