我正在使用ActivityRecognitionClient
课程来获取用户活动的数据,无论他是走路,跑步还是骑自行车等......
问题在于使用PendingIntent
,因此我可以启动PendingIntent
,在函数onHandleIntent
中我甚至可以提取用户活动值的日志
问题是我无法将值提取到MainActivity
。
虽然我看到了解决方案here。
他使用SharedPreferences
传递数据,并使用MainActivity
实施SharedPreferences.OnSharedPreferenceChangeListener。因此,只要在SharedPreference
或任何其他类中编辑IntentService
,MainActivity
就会收到回调。
我认为这不是最佳解决方案,但我没有找到任何其他解决方案。
但我不明白为什么除了PendingIntent.getService()
和OnSuccessListener
之外,OnFailureListener
函数没有任何回调。
到目前为止我所做的是this gist
感谢帮助者!
答案 0 :(得分:1)
要从服务获取数据到活动,您可以使用Intents,本地广播接收器,或者您可以将活动绑定到您的服务。如果你绑定到你的服务,你可以简单地注册一个回调,但要注意你不要从服务后台线程更新你的视图(例如使用处理程序从后台线程到UI线程进行通信)