每次我的应用程序关闭时,我都想做一些简单的操作 - 我只想减少int变量。怎么做?
答案 0 :(得分:2)
正如@Ozair正确地问,这取决于你定义为 closing of app
。
根据需要,您可以执行以下任一操作或两者:
如果您想通过使用BACK按钮检测应用程序的关闭,那么从上一个活动中,您可以通过覆盖onBackPressed功能来检测按下BACK按钮。在那里你可以减少你的价值。
如果您还在考虑应用程序按HOME按钮进入后台的情况,那么在您的活动中您必须检测到按下的HOME按钮。有许多解决方案不再用于检测HOME按钮,但this问题的How can I detect user pressing HOME key in my activity?答案似乎对我有用。
因此,您可以检测到HOME按钮并减少可以在SharedPreferece
中保存的值。
您可以在其他情况下致电finish()
并关闭上一个活动。从您的问题来看,您是否也在考虑这个案例并不清楚。
希望这给你一些思考它的机会。
答案 1 :(得分:1)
问题是你的意思是“关闭”?
如果关闭所有活动,则应用程序进程可能仍在运行。如果你的意思是“关闭”只是关闭你的所有活动。您可以为所有打开的活动定义“计数”,您可以将其存储在DB或SharePerference中。我想你可以遵循(虚拟代码):
在项目中,您应该定义BasicActivity:
public class BasicActivity extends Activity {
onCreate() {
mPreference.incActivityCount();//++
super.onCreate();
}
onDestory() {
mPreference.decActivityCount();//--
if( mPreference.getActivity() == 0 ) {
//All being opened Activities have been closed.
onAppHasNoUIs();
}
super.onDestory();
}
onAppHasNoUIs() {
//All being opened Activities have been closed.
}
}