Android - 将ActivityRecognition服务值恢复为MainActivity

时间:2017-11-24 19:49:44

标签: java android intentservice activity-recognition

我正在使用ActivityRecognitionClient课程来获取用户活动的数据,无论他是走路,跑步还是骑自行车等......

问题在于使用PendingIntent,因此我可以启动PendingIntent,在函数onHandleIntent中我甚至可以提取用户活动值的日志

问题是我无法将值提取到MainActivity

虽然我看到了解决方案here

他使用SharedPreferences传递数据,并使用MainActivity实施SharedPreferences.OnSharedPreferenceChangeListener。因此,只要在SharedPreference 或任何其他类中编辑IntentServiceMainActivity就会收到回调。

我认为这不是最佳解决方案,但我没有找到任何其他解决方案。

但我不明白为什么除了PendingIntent.getService()OnSuccessListener之外,OnFailureListener函数没有任何回调。

到目前为止我所做的是this gist

感谢帮助者!

1 个答案:

答案 0 :(得分:1)

要从服务获取数据到活动,您可以使用Intents,本地广播接收器,或者您可以将活动绑定到您的服务。如果你绑定到你的服务,你可以简单地注册一个回调,但要注意你不要从服务后台线程更新你的视图(例如使用处理程序从后台线程到UI线程进行通信)