我正在使用在formcreate上处于活动状态的locationsensor,并且在设计时打开了带有Compass和MyLocation ControlOptions的Mapview。我想在应用程序转到后台时关闭该位置。我使用这段代码:
function Frm.OnApplicationEvent(AAppEvent:TApplicationEvent;AContext:TObject):Boolean;
var
StartupIntent: JIntent;
begin
case AAppEvent of
TApplicationEvent.EnteredBackground:
//TApplicationEvent.willbecomeinactive:
begin
MapView1.ControlOptions := MapView1.ControlOptions - [TMapControlOption.MyLocation];
MapView1.ControlOptions := MapView1.ControlOptions - [TMapControlOption.Compass];
locationsensor1.Active:=false;
mapview1.Enabled:=false;
end;
TApplicationEvent.WillBecomeForeground:
begin
mapview1.Enabled:=true;
MapView1.ControlOptions := MapView1.ControlOptions + [TMapControlOption.MyLocation];
MapView1.ControlOptions := MapView1.ControlOptions + [TMapControlOption.Compass];
locationsensor1.Active:=true;
end;
end;
Result := False;
end;
但android上的位置图标不会消失。它只会在我杀死应用程序时消失。
对这个问题有什么想法吗?
非常感谢
答案 0 :(得分:0)
问题是MapView。如果我将mapview(面板)的容器的可见性设置为false,那么locationsensor在转到后台时会被禁用。