1

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

4

2 回答 2

2

正如@Ozair 正确地提出的那样,这取决于您将什么定义为closing of app.

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

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

  2. 如果您还在考虑应用程序通过按下 HOME 按钮进入后台的情况,那么在您的活动中,您必须检测按下的 HOME 按钮。有许多解决方案不再适用于检测 HOME 按钮,但这个答案是关于如何检测用户在我的活动中按下 HOME 键?问题似乎对我有用。因此,您可以在那里检测 HOME 按钮并减少您可以保存的值SharedPreferece

在其他情况下,您可能会调用finish()并关闭上一个活动。从您的问题中不清楚您是否也在考虑这种情况。

希望这能给你一些思考的机会。

于 2013-08-17T20:27:32.717 回答
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.
     }
}
于 2013-08-17T20:39:22.770 回答