Android,跟踪应用程序转到后台

时间:2014-01-15 06:34:42

标签: android android-applicationinfo

后台:我在Application类中转储一些数据,并在短暂的间隔后或应用程序转到后台时(例如,当用户按下Home按钮或任务时)将其保存到文件中-switcher按钮)。我不想使用Activity类的onPause(),因为应用程序中有很多活动,我必须检查所有这些活动的onPause()。当我在我的应用程序中从一个活动跳转到另一个活动时,也会调用onPause(这会创建不必要的保存操作)。

问题:当应用程序转到后台时,是否会触发一个通用事件,无论它处于哪个活动状态?

由于

2 个答案:

答案 0 :(得分:1)

连续检查以下代码意味着你可以使用Timer类。

ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTasks = null;
try {
    runningTasks = activityManager.getRunningTasks(1);
} catch (Exception e) {

}
RunningTaskInfo runningTaskInfo = runningTasks.get(0);
ComponentName topActivity = runningTaskInfo.topActivity;
if(topActivity.getPackageName().equals(your packagename)){
   S.o.p("fine");}
else{
   S.o.p.("application sent to background");}

答案 1 :(得分:0)

当活动从视图中隐藏时,即用户按下主页按钮时,将调用

onStop()onPause()仅在隐藏Activity时使用,即由于某些重叠而部分可见。当然,在onPause()被调用之前调用onStop()。您可以在Android Developers查看所有生命周期。我鼓励你使用生命周期,而不是反对它。状态改变时保存数据。

对于预定的数据存储,我建议您使用计时器。当您将所有数据提交到应用程序上下文,并且您可以使用较少的恢复点时,我建议将日期存储在onDestroy()调用中。如果没有,我建议您实施TimerTask来安排定期的数据序列化。

要回答你的问题,不! Android总是考虑您的应用程序并且只有一个生命周期。每个活动有一个生命周期,所有活动都按堆栈和它们各自的生命周期联系在一起。