如何在 Flutter 中连续执行 bloc 事件?
Posted
技术标签:
【中文标题】如何在 Flutter 中连续执行 bloc 事件?【英文标题】:How can I execute bloc event continuously in Flutter? 【发布时间】:2020-08-17 09:38:12 【问题描述】:我想在我的应用程序中持续跟踪用户位置。出于这个原因,我想在我的主页中连续执行 getLocaiton bloc 事件。我该怎么做?
这是我的 getLocation 事件;
GetLocationState get initialState => GetLocationState(saveUserCurrentLocation: initialPosition );
Stream<GetLocationState> mapEventToState(LocationEvent event) async*
if (event is GetLocation)
userLocation.getLocation().then((l)
currentLatLng = LatLng(l.latitude, l.longitude);
);
yield GetLocationState(saveUserCurrentLocation: currentLatLng);
这是我的主页
initialCameraPosition:
CameraPosition(target: initialPosition, zoom: 10),
mapType: MapType.terrain,
onMapCreated: _onMapCreated,
myLocationEnabled: true,
),
floatingActionButton: FloatingActionButton(
onPressed: ()
_locationBloc.add(GetLocation());
,
),
),
);
);
如何在不使用 onPress 事件的情况下在后台连续运行代码?
【问题讨论】:
【参考方案1】:在initState()
中使用Timer
(如果不是,则使您的小部件有状态):
Timer(Duration(seconds: 5), ()
_locationBloc.add(GetLocation());
);
【讨论】:
以上是关于如何在 Flutter 中连续执行 bloc 事件?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter BLoC 模式 - 如何在流事件后导航到另一个屏幕?