当前位置: 首页 > 知识库问答 >
问题:

如何在活动从后台转到前台时进行检测和计数

钮巴英
2023-03-14

我想在Activity从后台转到前台时检测并计数(当活动可见时,增加计数)。我尝试在onPause()onResume()中使用如下标志:

void onPause(){
    flag = true;
}

void onResume(){
if(flag){
 //save to shared reference.  
   saveCount(getCount(count) + 1);
 flag = false;
}

}

当用户按home键并重新启动应用程序时,它会工作,但当我转移活动然后返回时,它仍然会增加计数,因为它会调用onPause()。如何预防?还是有什么可以数的?


共有1个答案

翁硕
2023-03-14

使用此方法检查是否将应用程序置于后台:

private boolean isApplicationBroughtToBackground(Context context) {
    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningTaskInfo> tasks = am.getRunningTasks(1);
    if (!tasks.isEmpty()) {
        ComponentName topActivity = tasks.get(0).topActivity;
        if (!topActivity.getPackageName().equals(context.getPackageName())) {
            return true;
        }
    }

    return false;
}

它需要GET_TASKS许可:

<uses-permission android:name="android.permission.GET_TASKS" />
 类似资料:
  • 我正在构建一个android应用程序,我需要从后台开始一项活动。我正在使用ForegroundStarter来扩展服务,以实现这一点。我有一个活动屏幕。我需要从前台服务运行的类。活动的广告屏幕。除了Android10,其他所有Android版本的课程都可以正常运行(从后台开始)。 前场先发。班 我读到在Android10上从后台启动活动有一些限制。这个代码似乎不再有效了。https://devel

  • null null null (void)applicationdidbeceeactive:(UIApplication*)application { } null { } -(无效)appdidbeceactive }

  • 我正在试验的Android信标库,我能够使其工作与苹果兼容的信标监测和测距添加自定义解析器(请参阅这是正确的布局,以检测iBeacons与AltBeacon的Android信标库?) 现在我正在尝试使用此处显示的示例代码编写一个在后台启动的应用程序: http://altbeacon.github.io/android-beacon-library/samples.html 这是我的代码: 不幸的

  • 在我的应用程序中,当我从后台回来时,我的活动会自动接近,并且它总是显示以前的活动。示例:我用活动A启动应用程序 }

  • 本文向大家介绍如何检查iOS程序是在前台还是在后台?,包括了如何检查iOS程序是在前台还是在后台?的使用技巧和注意事项,需要的朋友参考一下 作为iOS开发人员,了解应用程序处于前台还是后台很重要,我们需要处理多个事件,例如后台下载,应用程序进入前台时的事件。 在这里,我们将看到如何检查应用程序是在后台还是在前台。 我们将为此使用通知中心, 要了解更多信息,请参考Apple文档。  https://

  • 问题内容: 我正在为Swift编写的iOS游戏。我试图找到一种方法来检测应用程序何时进入后台模式或由于其他原因而中断,例如电话,但找不到任何东西。我该怎么做? 问题答案: 您可以将观察者添加到视图控制器中: 编辑/更新: Xcode 11•Swift 5 iOS13或更高版本 iOS12或更早版本 并将选择器方法添加到视图控制器,该方法将在您的应用收到该通知时执行: