Как узнать, когда приложение выходит на передний план в Android


я разрабатываю приложение для Android, в котором я использовал tabhost для tabbar
в каждой вкладке я размещал FragmentActivity, которая в свою очередь содержит различные фрагменты
Я получаю данные с сервера через сетевые вызовы, и при отправке каждого вызова мне нужно отправить токен аутентификации (для которого я сначала выполняю вход в систему), токен аутентификации автоматически истекает через 30 минут.
Теперь возникает проблема, если пользователь нажимает кнопку "Домой", когда в середине приложения приложение переходит в фоновый режим, и если пользователь снова запускает приложение, т.е. выводит его на передний план (скажем, через 30 минут или более), в то время как токен аутентификации истекает, тогда сбой сетевого вызова....
Как я могу узнать, когда мое приложение выходит на передний план????????
Я погуглил эту проблему, и решения, которые я получил до сих пор,

  1. использовать методы onCreate(), onPause(), onResume(), но в моем случае у меня есть 5 различных вкладок, и в соответствии с этим решением мне придется проверять методы каждого FragmentActivity, и эти методы будут вызываться не только при возобновлении приложения, но и переключение вкладок и первоначальное создание FragmentActivities....
  2. второй подход, который у меня есть, это использование ActivityManager

ни один из подходов меня не устраивает............ я в середине своего приложения и действительно нуждаюсь в помощи

1 ответ

Используйте следующий код:

ActivityManager activityManager = (ActivityManager) appContext.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> services = activityManager
        .getRunningTasks(Integer.MAX_VALUE);
boolean isActivityFound = false;

if (services.get(0).topActivity.getPackageName().toString()
        .equalsIgnoreCase(appContext.getPackageName().toString())) {
    // Your activity is in foreground, do what you've got to do..
}

Вам нужно разрешение:

<uses-permission android:name="android.permission.GET_TASKS" />
Другие вопросы по тегам