自己用的XE10正学习做安卓APP,但是做到一半的时候,发现,只要手机锁屏了,或者返回桌面了,程序继续运行几秒钟后就停止 了。可以说是暂停了,再次打开界面的时候才继续。我要做的东西,要在锁屏的时候能继续工作的。网上查找资料,大多数都是说发送到后台,实测的时候,却中一运行那个后台函数,只是显示桌面而已,并没有想要的效果,求高手,告诉一下,那里设置的?以下是做了个测试函数。
procedure TForm1.Button3Click(Sender: TObject);begin
  TThread.CreateAnonymousThread(procedure ()
      var
        I: Integer;
              begin
                for I := 1 to 10000000 do
                begin
                    TThread.Synchronize (TThread.CurrentThread,
                      procedure ()
                            begin
                              Form1.Memo1.Text:=inttostr(i);
                            end);
                end;
              end).Start;
end;
看着界面的时候,数字不断增加变化。求锁屏时继续工作的设置或者方法,路子。

解决方案 »

  1.   

    加入唤醒锁(WakeLock)权限,此权限可以保持cpu在锁屏时一直处于活动状态。它很耗电,执行完要及时释放。在IDE的Samples\Object Pascal\Multi-Device Samples\Google Glass目录下的例子里有个电源管理的单元供参考。尝试做成服务(Service)程序,如长时间运行可以将服务设置为前台状态。在Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services有多个Service程序例子。帮助索引里有Creating Android Services条目,其中有详细步骤。