zoukankan      html  css  js  c++  java
  • xe5 firemonkey关闭应用程序

    在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为:

    uses 
      FMX.Platform.Android;

    procedure TForm2.SpeedButton1Click(Sender: TObject);
    begin 
      MainActivity.finish; 
    end; 

    此时程序直接关闭了,如果需要在退出前询问一下,可以参考VCL中的做法,在按钮事件中仍然使用关闭函数,在OnCloseQuery事件中询问是否退出,在OnClose事件中实现程序的关闭,如下:

    uses 
      FMX.Platform.Android;

    procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
    begin 
      {退出程序} 
      MainActivity.finish; 
    end;

    procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin 
      if MessageDlg('是否退出?', 
        TMsgDlgType.mtConfirmation, 
        [TMsgDlgBtn.mbOK, TMsgDlgBtn.mbCancel], 
        -1) = mrOK then 
        CanClose := true 
      else 
        CanClose := false; 
    end;

    procedure TfrmMain.btncloseClick(Sender: TObject);
    begin 
      Close; 
    end; 

    procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word;
      var KeyChar: Char; Shift: TShiftState);
    begin

      //当按下硬件键盘的返回按钮时,关闭当前窗体
      if Key = vkHardwareBack then
        Close;
    end;

    在虚拟机中运行如下:

    image

    delphi 关闭Android安卓程序,后台运行
    procedure SetBack(const AAction : JString); //后台运行。。
    var
    Intent: JIntent;
    begin
    Intent:= TJIntent.JavaClass.init(AAction);
    intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME);
    Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
    SharedActivityContext.startActivity(Intent);
    end;

     

    调用SetBack(TJIntent.JavaClass.ACTION_MAIN);


    关闭程序
    引用:FMX.Platform.Android这个单元
    调用:MainActivity.finish

    http://blog.csdn.net/syndicater/article/details/16946263

  • 相关阅读:
    5.1、字符串插入
    2.2、部署 Discuz!
    7.1.5、测试数组
    4.2、php 注释
    5.2、操作符
    2.3、初始化 Discuz!
    5.3、控制结构
    gradle 又一项目构建工具
    1.1、概述
    7.1.8、通过追加数组的方式创建数组
  • 原文地址:https://www.cnblogs.com/findumars/p/6358496.html
Copyright © 2011-2022 走看看