每次应用关闭时都要执行某些操作

时间:2013-08-17 19:59:54

标签: android

每次我的应用程序关闭时,我都想做一些简单的操作 - 我只想减少int变量。怎么做?

2 个答案:

答案 0 :(得分:2)

正如@Ozair正确地问,这取决于你定义为 closing of app

根据需要,您可以执行以下任一操作或两者:

  1. 如果您想通过使用BACK按钮检测应用程序的关闭,那么从上一个活动中,您可以通过覆盖onBackPressed功能来检测按下BACK按钮。在那里你可以减少你的价值。

  2. 如果您还在考虑应用程序按HOME按钮进入后台的情况,那么在您的活动中您必须检测到按下的HOME按钮。有许多解决方案不再用于检测HOME按钮,但this问题的How can I detect user pressing HOME key in my activity?答案似乎对我有用。 因此,您可以检测到HOME按钮并减少可以在SharedPreferece中保存的值。

  3. 您可以在其他情况下致电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.
     }
}