草庐IT

android - 检查 Android 应用程序是否在前台的最佳方法是什么?

我有一个应用程序使用AsyncTasks对服务器进行REST调用。每当AsyncTask完成时,它要么:显示错误对话框/调用下一个Activity(如果应用程序在前台)或什么都不做(应用程序在后台)。我这样做是为了避免在应用程序发送到后台后弹出一个Activity。我见过一些实现:checkandroidapplicationisinforegroundornot?Determiningthecurrentforegroundapplicationfromabackgroundtaskorservice目前我正在使用另一个,甚至更简单:在每个Activity的恢复上我将一个全局变量设置

android - 如何判断我的 Android 服务是否在前台运行?

我想从特定服务的代码中确定该服务是否在前台。我看了看:ActivityManager.RunningServiceInfo特别是RunningServiceInfo.foreground,但文档说,“如果服务要求作为前台进程运行,则设置为true。”那么我可以依赖RunningServiceInfo.foreground吗?还是有别的办法?PS:我没有其他问题,我的服务运行良好。这个问题更多是出于好奇。已经浏览了ASOP并没有看到任何东西,但也许我错过了什么......如果您有类似的问题,这可能会有所帮助:HowtodetermineifanAndroidServiceisrunnin

android - 从服务开始一个 Activity 到前台

基本上,我想从后台服务弹出一个对话框到前台(我知道使用通知会更加用户友好,但我的应用程序确实需要用户的即时响应)。我有我的服务工作。然后,我使用android:theme="@android:style/Theme.Translucent.NoTitleBar"定义了一个包含对话框的Activity。在服务代码中,我这样启动对话Activity:Intentintent=newIntent(getApplicationContext(),PopUpDialogActivity.class);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);s

android - 前台服务保留内存对象

我的Android应用程序本质上是一个前台服务。应用程序的用户界面方面用于设置和配置此前台服务。当服务通过应用程序UI启动时,它开始显示23mb的内存使用情况。当Android启动服务时(例如在启动时),它开始显示7mb的内存使用情况。如果打开应用程序UI,内存使用量会增加到23mb。当在UI的MainActivity中调用onDestroy()时,关联的可绘制对象和资源保留在附加到前台服务的内存中,不会被垃圾收集。我可以通过在MainActivity的onDestroy()中调用System.exit(0)来“解决”问题。然后Android在7mb处重新启动前台服务。此外,我可以在l

android - 当应用程序处于前台时,GCM 3.0 通知有效负载不显示 android 通知

当我发送带有通知(无数据)负载的gcm消息时,仅当我的应用程序处于后台时才会显示android通知。如果应用程序在前台,则不会显示android通知,但会调用GcmListenerService实现中的onMessageReceived()并使用空“消息”。当应用程序处于后台并且android通知按预期显示时,不会调用onMessageReceived()。这是预期的行为还是我遗漏了什么?如果需要任何客户端代码,请告诉我。这是服务器端的代码fragment:Message.BuildermessageBuilder=newMessage.Builder();messageBuilder

android - 当 Android 内存不足时,前台服务(不同进程/相同进程)的行为方式

如果Service在不同的进程中运行(通过list中的“:name”)带有前台标志。在系统想要释放一些内存的时候..(想象一下沉重的用户界面,用户按下主页并导航到其他沉重的应用程序)是否会终止此应用程序的主进程以释放资源?(显然保持服务进程完好无损)然后在用户导航回应用时重新启动仅主进程。如果Service在同一个进程中运行,它是否会释放除前台服务之外的所有资源,如Activity?或在这种情况下的整个过程(具有繁重的用户界面)将被视为前台,因此会消耗大量内存并且对用户手机不利附言我理解前台服务没有任何保证。http://developer.android.com/reference/

android - 当应用程序在后台(Titanium)时,Android 5 上的推送通知未发送 - 但它在前台发送

我在Android上使用UrbanAirship来接收通知。Appcelerator模块很旧(3年前)https://github.com/appcelerator-modules/ti.urbanairship我正在使用这个fork:https://github.com/rdking/ti.urbanairship/tree/master/android.有了rdking版本,我可以在Android5上收到通知,但只有当应用程序打开时(前台)。如果我打开另一个应用程序或将其关闭(将其置于后台),它将无法获取。我正在使用TitaniumSDK5.1.2.GA(应用程序和模块),使用ND

android - 有没有办法为所有可用的操作系统获取当前运行的前台应用程序(包)?

我知道,关于这个主题已经提出了太多问题,但是并非所有操作系统/设备都支持问题有什么方法可以所有可用操作系统获取当前正在运行的前台应用程序(程序包)?如何AppLock有效(它如何检测任何应用程序启动)?我尝试过的(但失败了)HowdoIdetectifanandroidappislaunched?-Google已在AndroidL中禁用。HowtouseUsageStatsManager?-android.permission.GET_TASKS已删除。Howtomakemyappadeviceowner?-无法以编程方式执行此命令。?KnoxStandardSDK我想要什么用户不应访

android - 当应用程序在 Android Pie 上受后台限制时启动前台服务

在Android9.0(Pie)中,用户可以通过设置限制您的应用进行后台工作。当我们尝试在Pie设备上启动前台服务时,如果应用程序在后台受限,即使应用程序Activity完全在前台,我们的应用程序也会出现以下异常。RemoteServiceException:Context.startForegroundService()didnotthencallService.startForeground()我们确实在启动的服务中调用了startForeground(),但是在尝试启动服务时系统日志显示:system_processW/ActivityManager:Service.startF

android - 我可以在前台服务中使用 Android Beacon 库吗,即使是在 Android 8 (Oreo) 上?

我想要实现的目标我正在为一个购物中心开发一个应用程序,其中安装了大量的信标,彼此之间的距离不太远(假设距离约为20米)。当用户走进这个商场时,即使没有打开应用程序,应用程序也需要不断扫描信标。当检测到信标时,我将查询服务器以询问我是否需要以及向用户推送什么本地通知。我打算做什么我最初的计划是创建一个Service,在onStartCommand()中返回START_STICKY以确保该服务会自行重启甚至该应用程序也被任务管理器杀死。此服务将持续扫描信标。其实这是我同事现有的做法。根据这位同事的说法,该服务几乎是在应用程序被任务管理器终止后立即启动的。问题但是很快我发现这种做法是有问题的