首先:我是绝对的初学者
当我的应用退出时,我需要执行一些代码(是的,我在Android中不知道这样的事情),这对我来说行得通:
-我有MyApplication,它扩展了Application。 作为MyApplication的成员,有一个名为activeActivitiesNumber的AtomicInteger字段和一个公共的getter方法。
-所有应用程序活动都扩展了我的活动(它本身扩展了活动)
-MyActivity覆盖onCreate,onResume和onStop方法,并且还具有受保护的字段:受保护的MyAppication mAppState;
a) OnCreate(){
super.onCreate();
mAppState=this.getApplication();...}
b) onResume(){
super.OnResume();
myAppState.getactiveActivitiesNumber().addAndGet(1)
....}
c) onStop(){
super.onStop()
if (myAppStatemyAppState.getactiveActivitiesNumber()..decrementAndGet()<1){
...call exiting code (for instance a public method defined in MyApplication}
}
它有一个问题:如果您启动了tan不属于您的应用程序的任何活动(例如,发送电子邮件),它将触发退出方法。
另一个问题(不知道它是否是理论上的问题)是不能保证在某些情况下会调用onStop。
希望这有帮助。