2017-08-12 55 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