检查我的应用在MPreview设备上的行为,似乎它的前台(带有主动通知)服务正在播放音乐不受打盹模式的影响。但是阅读文档,前台服务似乎只适用于AppStandby。真正的规则是什么? 最佳答案 在thispost9月17日的评论DianneHackborn写道:Appsthathavebeenrunningforegroundservices(withtheassociatednotification)arenotrestrictedbydoze.所以是的,您的发现似乎是预期的行为。 关
我正在尝试启动前台服务。我收到通知说服务确实启动了,但通知总是被抑制。我仔细检查了该应用程序是否允许在我的设备上的应用程序信息中显示通知。这是我的代码:privatevoidshowNotification(){IntentnotificationIntent=newIntent(this,MainActivity.class);notificationIntent.setAction(Constants.ACTION.MAIN_ACTION);notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_A
我正在尝试确定用户当前可见的应用程序。为此,我使用activityManager.getRunningAppProcesses()方法。我知道Android5.1.1不支持该方法-没关系。一开始它就像魅力一样,我正在遍历列表RunningAppProcessInfos并检查其重要性。tl;博士获取当前前台进程并防止误报的正确方法是什么?列表的顺序是如何完成的-API说它没有指定。有没有办法正确订购它们?我做了什么:不幸的是,ActivityManager返回的列表在每个设备上都不同。一些设备返回多个重要性为100(即FOREGROUND)的信息,即使进程当前不可见。这导致了我有很多误报
我想为Android平台编写一个服务,当当前前台Activity发生变化时会收到通知。基本上,服务应该只在顶级Activity发生变化时才执行一些任务。有没有办法订阅并在发生此类事件时收到通知?或者没有可能性,服务应该不时轮询正在运行的Activity列表并检查前台Activity是什么?不是最好的解决方案...... 最佳答案 AFAIK有两种方法可以做到这一点。启动服务并监控ActivityStack,您可以检查一下here使用无障碍服务,您可以找到解决方案here 关于androi
我有一个我认为在前台运行的服务,我如何检查我的实现是否正常工作? 最佳答案 publicstaticbooleanisServiceRunningInForeground(Contextcontext,ClassserviceClass){ActivityManagermanager=(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);for(ActivityManager.RunningServiceInfoservice:manager.getR
我使用以下代码在变量foregroundTaskPackageName中获取前台应用的Activity名称。它适用于4.1到4.4之间的所有操作系统版本,但不适用于Android5.0Lollipop。任何人都可以帮助了解5.0Lollipop中的变化吗?在Lollipop中-我为foregroundTaskPackageName获得的文本只是“Launcher3”。我正在使用Genymotion模拟器。ActivityManageram=(ActivityManager)getSystemService(ACTIVITY_SERVICE);RunningTaskInfoforegro
也许这很简单,但到目前为止我还没有真正弄清楚...我有一个BroadcastReceiver等待被AlarmMangager触发-这工作正常。现在:因为该事件(如果发生)需要刷新主Activity屏幕上的一些元素,我想从该背景BroadcastReceiver向我的Activity发送一个Intent-但只有如果它目前在前台,也就是Activity的。如果它没有运行或不可见,我不在乎-我想做的最后一件事就是按我的Intent启动Activity!我在onResume()方法中处理View的重绘,所以我根本不在乎。关于如何做到这一点的任何提示?谢谢!编辑:我的BroadcastRecei
我有一个Activity在配置更改时重新创建(需要)。我有一个DialogFragment调用setRetainInstance(true)在其布局中有一个EditText。在DialogFragment的onActivityCreated中我调用:getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);A)如果我打开键盘,然后当我将应用程序置于后台,然后将其带到前台时,我希望键盘仍然显示。B)如果我关闭键盘(EditText仍然有焦点并显示所需行为的光标
我正在尝试停止作为前台服务运行的服务。当前的问题是,当我调用stopService()时,通知仍然存在。所以在我的解决方案中,我在onCreate()中添加了一个我正在注册的接收器在onReceive()方法中,我调用stopforeground(true)并隐藏通知。然后stopself()停止服务。在onDestroy()里面我注销了接收器。有没有更合适的方法来处理这个问题?因为stopService()根本不起作用。@OverridepublicvoidonDestroy(){unregisterReceiver(receiver);super.onDestroy();}
我目前正在编写我的第一个Android应用程序,并且不断遇到对后台和前台服务的引用。由于我打算在我的应用程序中使用服务,因此我希望能够澄清这两者以及它们的使用方式。 最佳答案 也许这会回答你的问题:AstartedservicecanusethestartForegroundAPItoputtheserviceinaforegroundstate,wherethesystemconsidersittobesomethingtheuserisactivelyawareofandthusnotacandidateforkillingwh