- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个用于研究目的的应用程序,它在后台从传感器收集数据。我使用注册一些广播接收器的服务,将 startForeground()
附加到通知,我还使用 START_STICKY 在 onStartCommand()
中启动该服务。在 Marshmallow 上一切正常,但是当我在带有 7.1.1 的 OnePlus 3 上尝试一段时间后,该应用程序就从正在运行的应用程序中消失了。一切都被系统杀死了。有时我会收到一条系统通知:“注意,后台运行的应用程序正在使用大量...”。如果我单击此通知,它会打开显示“管理高功率使用应用程序”的设置窗口,我的应用程序在那里,但“自动关闭高功率使用应用程序”选项被禁用。此外,我已经在电池下的系统设置中将应用程序设置为“不优化”。实际上,如果我禁用那些消耗更多电池的传感器(例如位置)的日志记录,一切正常,我可以无限期地运行该应用程序。关于如何解决的任何建议?
请记住,这是一个用于研究目的的应用程序,它没有发布,所以不建议不要这样做,因为它会影响用户体验,事实并非如此。谢谢!
最佳答案
据报道,这显然是 OxygenOS 的一项“功能”here .我的堆栈跟踪已附加,我必须更换智能手机..
...
05-19 21:03:12.434 it.unitn.disi.witmee.sensorlog I/System.out: 服务: 真
05-19 21:03:27.689 it.unitn.disi.witmee.sensorlog I/art:后台部分并发标记清除 GC 已释放 265550(7MB)AllocSpace 对象,0(0B)LOS 对象,39% 空闲,14MB/23MB,暂停 1.357ms 总计 106.126ms
05-19 21:03:43.649 it.unitn.disi.witmee.sensorlog I/art:后台粘性并发标记扫描 GC 已释放 243975(7MB) AllocSpace 对象,0(0B) LOS 对象,30% 空闲,16MB/23MB,暂停 1.610ms 总计 108.734ms
05-19 21:03:55.995 it.unitn.disi.witmee.sensorlog I/art:后台部分并发标记清除 GC 已释放 298424(8MB)AllocSpace 对象,0(0B)LOS 对象,39% 空闲,14MB/24MB,暂停 1.716ms 总计 126.141ms
05-19 21:04:02.051 ? I/ActivityManager: [BgDetect] 在进程 it.unitn.disi.witmee.sensorlog(pid: 27858) 0 级使用 29 上检测到过多的 cpu
05-19 21:04:02.088 ? I/ActivityManager: [BgDetect]force stop it.unitn.disi.witmee.sensorlog (uid 10245) 级别 0
05-19 21:04:02.089 ? I/ActivityManager:强制停止它。unitn.disi.witmee.sensorlog appid=10245 user=0:来自 pid 1336
05-19 21:04:02.089 ? I/ActivityManager: 杀死 27858:it.unitn.disi.witmee.sensorlog/u0a245 (adj 200): stop it.unitn.disi.witmee.sensorlog
05-19 21:04:02.089 ? W/ActivityManager:计划在 1000 毫秒内重启崩溃的服务 it.unitn.disi.witmee.sensorlog/.services.LoggingMonitoringService
05-19 21:04:02.091 ? I/ActivityManager:强制停止服务 ServiceRecord{9156a9a u0 it.unitn.disi.witmee.sensorlog/.services.LoggingMonitoringService}
关于Android Nougat 在 Oneplus 上杀死了我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44073115/
我的应用程序显示通知以指示下载进度。但是自从重新设计通知(Android 7.0+)以来,只要标题文本较长,就不会显示描述文本,它会显示从 xyz MB 下载了多少数据。所以这对我的用户来说很重要。加
我想为 android nougat 创建一个应用程序,当我单击一个按钮时,我会在同一时刻在同一屏幕上启动两个应用程序。我想使用Android 7的这个新功能,可以吗? 最佳答案 您可以使用 Acce
有人试过为应用程序设置最小高度以在牛轧糖多窗口模式下使用吗? 试过了, 我的引用是这样的:https://developer.android.com/guide/topics/ui/mu
我的应用程序在 5+ 和 6+ 上完美运行,但在 7 上却不行。当应用程序尝试登录服务器时抛出此异常: 09-01 09:52:53.821 2654-2718/com.pipodi.italians
我正在开发带有后台服务的 Android 应用程序。服务在自己的进程中运行(如 com.example.app:extProccess)。创建 WebSockets 连接的服务。但在服务启动后不到 1
我有一个名为 ProApplication 的自定义应用程序,我在 list 中定义它,如下所示: 我在 Canvas 上创建了一个圆形剪辑路径,并且有一列数字在 Canvas 上进行了动画处理,因此我看到数字在剪辑部分中进行动画处理并进行动画处理。这是裁剪代码: mClipPath.addCirc
在 Android(目标 25)中,我有一个后台服务,在 onCreate 函数中我已经初始化了一个电话状态监听器。它在 Nougat 之前的 Android 版本上运行良好,但在 Nougat 中它
我在 Android 7.x 中将通知小图标设置为黄色时遇到问题 我在构建通知对象时使用 notification.setColor(Color.YELLOW);。它显示橄榄色(有点)而不是黄色。 还
这list of changes对于 Android Marshmallow 非常有用。牛轧糖有类似的 list 吗?如果是,如何找到它? 最佳答案 目前Android N还处于预览状态,所以它的文档
从一年开始,我一直在研究 IOT 产品,并且附加的应用程序运行良好。现在我无法在更高版本的android中以编程方式接受调用。功能对产品来说非常重要。非常感谢任何帮助。 在安全补丁更新 2016 年
自 Android N 开发者预览版第一次发布以来,我在尝试列出根目录或其他系统目录时收到“权限被拒绝”错误。这些目录的权限似乎没有改变(据我所知)。 问题: Android N 中的哪些更改导致了这
我已将手机更新为 android nougat,裁剪功能突然无法使用。在 Marshmallow 中工作得很好。这是我的build.gradle apply plugin: 'com.andr
我像这样开始工作: JobScheduler scheduler = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE); if(sc
我正在自定义日期和时间选择器。当我在 android Nougat 上尝试时,OK 和 Cancel 按钮显示为半透明灰色。见附图。在 android 6 中——它看起来很好……有任何想法吗?谢谢
我正在我的服务的 onStartCommand 中注册我的 PhoneStateListener。它在以下 android N 设备中运行良好。但有时它在 android N 设备中没有响应。它与打瞌
Android 7.0 Nougat 带来了新的内联通知 - 能够在通知中回复消息。我想知道如何更改内联回复背景和突出显示颜色。 玩了一下,我发现背景颜色取决于您的 colorPrimary。然后从原
尝试使用以下方法更改 Nougat 中的应用程序语言,但失败了。 config.setLocales(new LocaleList(locale)); getBaseContext().createC
我想知道我的应用程序在后台时是否被杀死。我正在使用 android nougat 设备进行测试。但是当我通过滑动杀死我的应用程序时,我的服务的 onTaskRemoved() 没有调用。 有什么方法可
我有一个登录屏幕,它有两个 EditText,一切正常,但是当我在 android nougat 7.0.1 中运行应用程序时,登录屏幕的光标显示在中心。我也尝试过此处提供的解决方案......但不适
我是一名优秀的程序员,十分优秀!