【问题标题】:WearableListenerService only starting after application is installed - then never againWearableListenerService 仅在安装应用程序后启动 - 然后再也不会
【发布时间】:2014-11-27 23:35:07
【问题描述】:

我正在开发一个支持 Android Wear 的 Android 应用程序。

主应用程序将数据发送到 Android 穿戴应用程序 WearableListenerService,然后发出通知并显示它。

我的问题是,如果我重新启动 Watch,Android Wear 应用将永远无法再次启动 - 因为 Wear 设备上的侦听器服务不会随移动应用启动!

我已尝试强制关闭应用程序并重新启动它,重新启动手机 - 无论我做什么,listenerservice 都无法再次启动。

当我从 Android Studio 安装应用程序时,它运行良好,并且在手表重新启动之前它会运行。 (我可以重启手机并关闭应用)

有没有人遇到过类似的问题或知道解决方法?

所以我提供了更多信息:

当手表启动时,我在日志中捕获了这条消息(这显然是问题的根源):

11-27 17:22:08.974      803-830/com.google.android.clockwork.packageinstaller I/WearablePkgInstaller﹕ Sent delete request for com.example.distributedmediaplayer
11-27 17:22:09.074      473-509/system_process I/ActivityManager﹕ Force stopping com.example.distributedmediaplayer appid=10032 user=-1: uninstall pkg
11-27 17:22:09.084      473-517/system_process W/PackageManager﹕ Couldn't delete native library directory /data/app-lib/com.example.distributedmediaplayer
11-27 17:22:09.274      473-517/system_process I/ActivityManager﹕ Force stopping com.example.distributedmediaplayer appid=10032 user=0: pkg removed
11-27 17:22:09.574      803-814/com.google.android.clockwork.packageinstaller I/WearablePkgInstaller﹕ Package com.example.distributedmediaplayer was uninstalled.
11-27 17:22:44.721    1166-1182/android.process.acore D/VoicemailCleanupService﹕ Cleaning up data for package: com.example.distributedmediaplayer
11-27 17:22:44.891      637-637/com.google.android.gms I/ConfigFetchService﹕ PackageReceiver: Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:com.example.distributedmediaplayer flg=0x4000010 cmp=com.google.android.gms/.config.ConfigFetchService$PackageReceiver (has extras) }
11-27 17:22:44.901      637-637/com.google.android.gms I/ConfigFetchService﹕ onStartCommand Intent { act=android.intent.action.PACKAGE_REMOVED dat=package:com.example.distributedmediaplayer cmp=com.google.android.gms/.config.ConfigFetchService (has extras) }

那么问题就变成了,是什么让我的应用程序在设备启动时卸载?

【问题讨论】:

  • 你找到解决办法了吗?

标签: android wear-os


【解决方案1】:

这个Service 并不是一直在运行——事实上,它只在消息处理期间运行。 Google Play Services Wear API 负责启动您的WearableListenerService,因此只要它包含在AndroidManifest 中设置的正确IntentFilter,您就不必做任何特别的事情。

【讨论】:

  • 只是为了补充 Dmitry 所说的内容。手表上的 RAM 内存有限 ~512MB。因此,如果服务不使用,Wear OS 会积极关闭服务。当然,如果需要执行回调,操作系统会自动重启你的服务。你不必做任何事情。
  • 好的。然后我还有其他问题。你知道什么会阻碍我的服务启动吗?
  • 另外,它与应用程序版本控制有什么关系吗?因为它在从 Android Studio 安装时可以工作......或者只是在重新启动时从手表中删除该应用程序?
  • @Joakim.Ahle 请详细解释您的工作流程。您是如何尝试启动服务的?
  • 我最近遇到了类似的问题。直接加载观看时工作正常。但是,当与可穿戴 apk 打包的应用程序安装在主机设备上时,不会安装在手表上。事实上,我得到了类似的日志。从那我猜这个应用程序在安装后会立即从手表中删除,原因不明。
猜你喜欢
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
相关资源
最近更新 更多