如何检查我是否暂停或退出Android版应用程式(How do I check if I am pa

2019-10-17 18:46发布

我目前正在写为Android,我需要启动服务的时候我退出或暂停该应用程序的应用程序。 我该怎么办? 在我的应用程序,每次当我点击一个东西的时候,它会去另一个活动,所以我不能把startservice这些活动里面的onPause。 我该怎么办?

Answer 1:

看看活动的生命周期在这里: http://developer.android.com/reference/android/app/Activity.html

当你开始一个新的Android不退出活动,它只是暂停了。 所以,开始里面的onPause service()方法应该罚款。



Answer 2:

根据Android的生命周期, onPause()方法将调用作为第一个迹象表明,用户正在离开你的活动。 它可能离开与否。 所以,按照您的要求,您可以startService. 但要确保不要把沉重的代码中,因为它可能会影响用户体验。



Answer 3:

通过重写此方法,你可以检查你的应用程序是在onPause或的onDestroy

protected void onPause() {
    Log.i("Status", "onPause");
    super.onPause();
}

protected void onDestroy() {
            Log.i("Status", "onDestroy");
    super.onDestroy();
}


Answer 4:

当活动不再可见,它调用onStop() 但是我们仍然不能肯定,如果应用程序被破坏的Android操作系统在内部处理它。 因此,尝试以下步骤找到,如果你的应用程序在background

  1. 使用Get正在运行的任务信息

     ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = am.getRunningTasks(1); 
  2. 如果任务列表不为空,检查是否运行TAKS属于您的应用程序。 如果属于,则返回true调用函数,在那里你可以开始你的服务; 否则返回false

      if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get(0).topActivity; if (!topActivity.getPackageName().equals(context.getPackageName())) { return true; } 

编辑:这可能会有帮助: http://developer.android.com/reference/android/app/ActivityManager.html#getRunningAppProcesses



文章来源: How do I check if I am pausing or exiting the application for android