在Android6.0Marshmallow中,我使用以下代码查询前台应用程序,但传入通知出现问题,因为它向发送通知的应用程序显示前台应用程序。该问题仅存在于Marshmallow中(5.X可以正常工作)。//API21andabove@TargetApi(Build.VERSION_CODES.LOLLIPOP)publicstaticStringgetProcessNew(UsageStatsManagermUsageStatsManager,Contextc)throwsException{Stringst=null;try{longendTime=System.currentT
我的前台粘性服务在几个小时后被终止而没有重新启动。我知道这个问题已经被问过几次了,我已经阅读并验证了我设备上的所有检查。需要注意的是,这似乎只发生在华为设备上。所以请允许我提供以下详细信息。定期服务publicclassPeriodicServiceextendsService{@OverridepublicvoidonCreate(){super.onCreate();acquireWakeLock();foregroundify();}privatevoidforegroundify(){//Omittedforbrevity.Yesitdoesstartsaforegrounds
我遇到了一个需求,但我无法获得正确的实现方式,因此需要您的帮助。我想做什么?-我想根据收到的通知执行操作,如下所示:当应用程序打开并位于前台时,即对用户可见并且我收到通知时,我只是显示一个弹出窗口以启动我的ActivityB当应用程序关闭时,即既不在后台也不在前台,并且我收到通知时,我将先启动我的应用程序,然后启动ActivityB当应用程序正在后台运行时,即在最近但用户不可见时,我想在不重新启动应用程序的情况下启动我的ActivityB。此外,在这种情况下,当用户按回ActivityB时,他们应该在将其发送到后台之前看到他们离开的屏幕。我做了什么?我已经达到了第1点和第2点。我想达到
更新:以前我找不到关于我的前台服务何时被终止的明确定义的模式。在对发生这种情况的设备进行更多调试后(并非全部发生),我发现了。1.)很多时候,当我打开chrome加载网站时,前台服务会被终止。有时甚至当我使用whatsapp时也会发生这种情况。2.)没有异常,堆栈跟踪没有显示任何有用的信息。下面的原始问题:StackOverflow上有很多这样的问题,但到目前为止我读到的答案大多是说这取决于Android,我们不能100%保证前台服务不会被杀死。一些答案建议START_STICKY,但这对我的情况没有太大帮助。在我的例子中,我有一个具有前台服务的音乐播放器应用程序。此服务在某些设备上被
我正在尝试创建一个Android应用程序,在设备屏幕关闭时持续实时记录设备位置数据。我的代码适用于Android6.0及更早版本,但似乎Android7.0+破坏了我的应用程序。我已经实现了一个Android前台服务,该服务使用唤醒锁并订阅了GoogleFusedLocationAPI。屏幕关闭后,永远不会触发onLocationChanged回调。有没有人看到这个问题的解决方案?我已尝试通过Android设备设置为我的应用以及Google服务框架和融合位置禁用电池优化。publicclassForegroundLocationServiceextendsServiceimplemen
如果DianneHackborn在G+帖子上的评论构成“记录”,这显然是半记录的行为:https://plus.google.com/+AndroidDevelopers/posts/94jCkmG4jff但应允许与通知图标关联的前台服务在休眠模式下保持唤醒锁定。当您除了前台服务之外还有顶级Activity时,这似乎无效。我已经创建了一个最小的实现来演示这一点:https://github.com/petrnalevka/dozetest/blob/master/src/com/urbandroid/doze/DozeService.java问题可以重现于AndroidM、MRA58K
场景如下:开始ActivityAActivityA启动服务S服务S在前台模式下运行并显示一个通知,当用户按下该通知时会将用户带到ActivityB(具有launchMode="singleTop")ActivityB出现按主页进入DDMS并终止您的应用程序进程以模拟您的应用程序死亡(按红色停止按钮)Android会说“在5000毫秒内重新安排崩溃的服务”(有时更长)服务S重新启动并显示通知。服务重启时按通知图标......此时,由于进程意外结束,Android将同时恢复ActivityA和B。但是尽管ActivityB是singleTopandroid会再次生成它,因为用户点击了通知。
我正在创建一个教育应用程序,学生可以在其中进行5分钟的快速考试。他们大部分时间都在使用parent的手机。现在我想要的是,当学生参加考试时,任何其他应用程序(如WhatsApp、FB或Gmail)都不应发出通知。这可能吗?如何? 最佳答案 一种可能的解决方案是将手机设置为DND(请勿打扰)模式。我没有对此进行测试,但根据您应该能够执行的文档:NotificationManagernotificationManager=(NotificationManager)getSystemService(Context.NOTIFICATION
我在需要每晚进行同步的应用程序中工作。我使用在我想要的时间调用BroadcastReceiver的警报管理器。问题是如果应用程序在前台运行以避免丢失数据,我无法进行同步。所以我需要在BroadcastReceiver中知道应用程序是否在前台运行以取消此同步。我尝试了在StackOverflow中找到的解决方案:CheckingifanAndroidapplicationisrunninginthebackground但是这个参数在BroadcastReceiver中始终为false,在activites中为true。谁能告诉我是哪个问题?我做错了什么?非常感谢!
我正在使用FCM推送通知下面的代码在收到通知时播放声音publicvoidplayNotificationSound(){try{Urinotification=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);Ringtoner=RingtoneManager.getRingtone(mContext,notification);r.play();}catch(Exceptione){e.printStackTrace();}}我正在调用此OnMessageReceived方法,但声音仅在应用程序处于前台