2017-08-12 48 views
0

我有一個叫做的超類,主動活動和一個叫做的輔助類插入。 兩個類被定義爲代碼below.The 插入類擴展MainActivity類。 在兩個I類具有的onStop()方法,並且在插入 I類有@Override。問題是,當的onStop在插入類執行,也MainActivity的的onStop方法被調用。爲什麼?我能怎麼做? 謝謝!中學課的重寫法

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

你有super.onStop''中Insert'覆蓋方法'()? – dewarder

+0

@Google yes!在這兩種方法中。我把它在方法結束(前收盤parentesis}) – mekki10

回答

0

的onStop是由活動的生命週期提供的默認方法。你可以有你自定義的方法的名字說onMyStop()並調用從插入類的使用的onStop super.onMyStop()這個方法

0

原因是在Insert覆蓋方法調用super.onStop()。但調用super.onStop是強制性的。要修復此問題,您可以在MainActivity中創建另一種方法,如doOnStop,在之內調用它MainActivity,並在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