我正在使用Android Wear支持开发Android应用程序。
主应用程序将数据发送到Android佩戴应用程序WearableListenerService,然后发出通知并显示它。
我的问题是,如果我重新启动Watch,Android Wear应用程序永远无法再次启动 - 因为Wear设备上的侦听器服务并不是从移动应用程序开始的!
我已经尝试强制关闭应用并重新启动它,重新启动手机 - 无论我做什么,听众服务都无法再次启动。
当我从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) }
所以问题就变成了什么使我的应用程序在设备启动时卸载了?
答案 0 :(得分:2)
这个Service
并没有一直在运行 - 实际上,它只在消息处理期间运行。 Google Play Services Wear API负责启动您的WearableListenerService
,因此只要其在IntentFilter
中包含正确的AndroidManifest
设置,您就无需执行任何特殊操作。