【发布时间】:2018-02-20 21:09:53
【问题描述】:
我正在使用在 formcreate 上处于活动状态的位置传感器和在设计时打开 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 上的位置图标并没有消失。只有当我杀死应用程序时它才会消失。
你知道这个问题吗?
非常感谢
【问题讨论】:
-
传感器被ASensorEventQueue_disableSensor 函数禁用。当传感器刚刚禁用时,图标是否有可能持续存在?我对 Android 开发有一点经验,但也许您需要暂时销毁
TLocationSensor实例以使该图标消失..
标签: android delphi firemonkey