我正在考虑制作一个与Web API交互的应用程序。
要求:
经过大量的研究和阅读后,我认为绑定的前台服务可以实现这一目标,但我无法找到(或者我可能根本不理解)这样做...
以下是我的问题:
如果我提供服务并将投注逻辑放入其中,我的活动/应用程序将启动该服务并与之绑定..
我仍然会寻找一种可能的方法来做到这一点。我希望有人能以正确的方式引导我。
更新
(3)我最终使用LocalBroadcast
来通知服务中的App组件何时更新UI。
(2)使用LocalBroadcast
,我认为我的服务不应该关注我的应用程序状态。
(1)我使用Bound Service
并在服务上调用方法来传递数据并开始下注。
答案 0 :(得分:1)
您通过Intent将数据发送到服务: https://stackoverflow.com/a/15899750/3423468
Intent serviceIntent = new Intent(YourService.class.getName());
serviceIntent.putExtra("data", "123456");
context.startService(serviceIntent);
然后在服务覆盖OnStartCommand
方法:
public int onStartCommand (Intent intent, int flags, int startId)
{
String userID = intent.getStringExtra("data");
return START_STICKY;//or non-sticky
}
对于处理应用程序关闭事件,您可以检查此答案(从未使用过我自己): https://stackoverflow.com/a/26882533/3423468
关于你的上一个问题,你可以use BroadcastReciever
to send data from service to activity and update UI
如需进一步阅读,请查看以下链接:
答案 1 :(得分:0)
使用volley api。 将其添加为build.gradle中的依赖项
fig, ax = plt.subplots(1, 1,figsize=(18, 4))
ax.plot(obs_times, wind_speed, linewidth=2, color='blue')
arrow_scaler = 3
for i in xrange(0,len(obs_times),4):
u = arrow_scaler*-1*np.sin((np.pi/180)*(wind_direction[i]))
v = arrow_scaler*-1*np.cos((np.pi/180)*(wind_direction[i]))
ax.arrow(obs_times[i], (wind_speed.max()+2)/2, u, v, fc='k', ec='k', head_width=0.4, head_length=0.6)