我希望在某些类型X的所有活动都关闭时运行一些操作。第一个想法是有一些全局计数器,每次活动X关闭时递减,一旦计数器为0,运行一些操作。假设可以杀死进程,则必须保留计数器。但还有一个问题 - 假设活动X可能崩溃(由于代码中的一些错误),在这种情况下我不会减少计数器。
知道如何以健壮的方式实现它吗?
答案 0 :(得分:0)
我不确定'封闭'是什么意思,但你应该能够使用Activity Lifecycle回调来完成你的要求。
下一页上有一个图表,显示了如何实现Activity Lifecycle: http://developer.android.com/reference/android/app/Activity.html
答案 1 :(得分:0)
如你所说,你可以有一个全球反击。
也许它的好地方在于Application类?
或者你只需将计数器保存在一个文件中,并在每次启动应用程序时重置它(在第一次活动中)。
您也可以尝试将其保存在共享偏好设置中。
但崩溃仍然存在问题。我只是个主意。有用于崩溃记录的ACRA库。看看它,它们如何捕捉崩溃。
所以你可以写一个递减计数器的方法。并从onDestroy()或发生崩溃时调用它。