0


我正在开发一个 android 应用程序,其中我
在每个选项卡中使用 tabhost 作为 tabbar 我托管了 FragmentActivity 反过来托管不同的片段
我通过网络调用从服务器获取数据,并且在发送每个调用时我必须发送身份验证令牌(我首先进行登录调用)身份验证令牌在 30 分钟后自动过期。
现在的问题是,如果用户在应用程序中间按下主页按钮,应用程序将进入后台,如果用户再次启动app ie 将它带到前台(比如 30 分钟或更长时间后),同时身份验证令牌过期然后网络调用失败....
我怎么知道我的应用程序何时进入前台????????
我已经用谷歌搜索了这个问题和我的解决方案

  1. 使用 onCreate()、onPause()、onResume() 方法,但在我的情况下,我有 5 个不同的选项卡,根据这个解决方案,我必须检查每个 FragmentActivity 的方法,这些方法不仅在应用程序恢复时调用,而且选项卡切换和 FragmentActivity 的初始创建....
  2. 我得到的第二种方法是使用 ActivityManager

这两种方法都不适合我............我的应用程序中间,真的需要帮助

4

1 回答 1

-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" />
于 2013-06-16T19:05:37.730 回答