小编far*_*der的帖子

粘性前台服务无法重新启动,并显示"进程错误"错误

我有一个已启动的前台服务.我已经注意从onStartCommand返回START_STICKY.我观察到前台服务无法无限期运行,但会被称为的Android内部模块定期终止onStartCommand.本质上是一个进程LRU被维护,如果它被配置为这样做(粘性或非粘性),则新终止的服务将再次被调度.我面临的问题是如何处理重启.Logcat表示正在传递服务意图,但由于"进程不好"而失败

在浏览其他来源后,我被引导相信我的服务中存在内存泄漏.为了验证这个声明,我创建了一个vanilla前台服务,除了RestartProcessManager在同一个应用程序中记录语句之外什么也没做.这也发现了同样的问题.

在一个新项目中尝试了完全相同的东西(显然有一个新的包名),服务重启完全正常.另外,我通过单击studio-> logcat下的红色十字按钮来模拟重启(这实际上会杀死进程).无论如何,这次服务意图成功交付,服务再次启动并运行.我认为它可能是我项目中的一些依赖项,可能会以某种方式搞乱.我在新项目中复制了依赖项,并继续按预期工作.

现在这是荒谬的地方.我更改了错误项目中的包名称,我不再遇到问题了.我已经解决了这个问题,因为我花了将近2天的时间对此进行诊断,但更改软件包名称对我来说是不可行的,因为我的应用程序已经发布了.

编辑-1:我必须提一下,我在运行Oreo的设备上观察到这一点(一加5)

编辑-2:服务在与应用程序相同的过程中运行.我也包括了logcat转储.

02-15 14:26:50.850  1395  1445 D RestartProcessManager: updateSelf :  com.ambee, size : 30
02-15 14:26:50.852  1395  1445 D RestartProcessManager: com.ambee got score 26.17240489145331 in DayDuration for duration : 525176
02-15 14:26:50.853  1395  1445 D RestartProcessManager: com.ambee got score 99.80218232889891 in DayLRU for LRU diff : 47707034
02-15 14:26:50.853  1395  1445 D RestartProcessManager: com.ambee got score 90.9090909090909 in DayLaunchTimes for launch times : 10
02-15 14:26:50.854  1395  1445 D RestartProcessManager: com.ambee …
Run Code Online (Sandbox Code Playgroud)

java service android foreground-service

35
推荐指数
1
解决办法
1278
查看次数

python的time.time()方法如何工作?

time.time()方法为您提供时间戳,该时间戳基本上是自纪元(以UTC为单位)以来经过的时间.

datetime.fromtimestamp()表示如果未提供tz参数,则返回本地日期时间对象.

我知道tz信息基本上被视为utc的偏移量以获得当地时间.

如果是这种情况,则必须从平台中提取utc中的当前时间.

从底层平台提取当天的当前时间,无论是本地还是UTC?

time utc python-2.7

5
推荐指数
1
解决办法
2332
查看次数

标签 统计

android ×1

foreground-service ×1

java ×1

python-2.7 ×1

service ×1

time ×1

utc ×1