在调用 onServiceConnected() 之前经过了很长时间
Long amount of time elapses before onServiceConnected() is called
我在不同的线程中有一个 activity 和一个服务 运行。
这是一个夜间录音机。
当服务在录制过程中因任何原因崩溃(我们无法避免崩溃,因为它来自外部库)时就会出现问题。
作为解决方法,我所做的是在 Activity 注意到与服务的连接已丢失时重新启动 activity。
通过重新创建 activity,服务也被重新创建。
问题是,调用
之间需要很长时间(甚至 1 小时)
bindService(RecorderService.newIntent(this), this, BIND_AUTO_CREATE);
和回调
public void onServiceConnected(ComponentName name, IBinder service) {
我认为发生这种情况是因为 phone 处于一种低电量模式,因为用户在半夜不使用它。
连接完成后我调用 startService,因为需要连接 Activity 和服务。
所以问题是那个时候记录停止了,我需要它 运行 没有中断。一旦 activity 重述,我就可以调用 startService,但这并不能确保在另一次假设性崩溃时连接该服务。
关于如何使服务 connction/start 更快的任何想法?
提前致谢!
我认为零售的东西可能存在内存问题 and/or 限制。
只需为每 2 小时记录器停止、保存并开始记录新文件创建代码。问题应该解决了。
至少如果你排序了 android.os.PowerManager.WakeLock
如果问题仅出在夜间 "low power mode",我认为您可以获取唤醒锁 (https://developer.android.com/reference/android/os/PowerManager.WakeLock) 以在启动服务之前唤醒 CPU 或 Activity。完成后别忘了释放锁 ;)
我在服务中看到了类似的问题,服务停止的原因可能有很多,例如电池、资源等,我将从检查您用于该服务的标志开始,例如,它应该是START_STICKY 首先,第二件事我建议考虑 android 中的 AlaramManager,如果你想一直在后台 运行 的话,它肯定更可靠。
下面一些有用的链接:
我在不同的线程中有一个 activity 和一个服务 运行。 这是一个夜间录音机。
当服务在录制过程中因任何原因崩溃(我们无法避免崩溃,因为它来自外部库)时就会出现问题。
作为解决方法,我所做的是在 Activity 注意到与服务的连接已丢失时重新启动 activity。 通过重新创建 activity,服务也被重新创建。
问题是,调用
之间需要很长时间(甚至 1 小时) bindService(RecorderService.newIntent(this), this, BIND_AUTO_CREATE);
和回调
public void onServiceConnected(ComponentName name, IBinder service) {
我认为发生这种情况是因为 phone 处于一种低电量模式,因为用户在半夜不使用它。
连接完成后我调用 startService,因为需要连接 Activity 和服务。
所以问题是那个时候记录停止了,我需要它 运行 没有中断。一旦 activity 重述,我就可以调用 startService,但这并不能确保在另一次假设性崩溃时连接该服务。
关于如何使服务 connction/start 更快的任何想法?
提前致谢!
我认为零售的东西可能存在内存问题 and/or 限制。 只需为每 2 小时记录器停止、保存并开始记录新文件创建代码。问题应该解决了。
至少如果你排序了 android.os.PowerManager.WakeLock
如果问题仅出在夜间 "low power mode",我认为您可以获取唤醒锁 (https://developer.android.com/reference/android/os/PowerManager.WakeLock) 以在启动服务之前唤醒 CPU 或 Activity。完成后别忘了释放锁 ;)
我在服务中看到了类似的问题,服务停止的原因可能有很多,例如电池、资源等,我将从检查您用于该服务的标志开始,例如,它应该是START_STICKY 首先,第二件事我建议考虑 android 中的 AlaramManager,如果你想一直在后台 运行 的话,它肯定更可靠。
下面一些有用的链接: