delphi Android实例-退出程序(XE8+小米2)  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi Android实例-退出程序(XE8+小米2)


 

unit Unit1;

 

interface

 

uses

  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,

  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,

  FMX.Controls.Presentation, FMX.StdCtrls;

 

type

  TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Label1: TLabel;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;

      Shift: TShiftState);

    procedure Button4Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

 

implementation

uses

FMX.Platform.Android,

FMX.Helpers.Android,

Androidapi.JNI.Net,

Androidapi.JNI.GraphicsContentViewText,

Androidapi.JNI.JavaTypes,

Androidapi.Helpers,

system.IOUtils;

 

{$R *.fmx}

{$R *.NmXhdpiPh.fmx ANDROID}

{$R *.LgXhdpiPh.fmx ANDROID}

{$R *.Macintosh.fmx MACOS}

{$R *.XLgXhdpiTb.fmx ANDROID}

{$R *.LgXhdpiTb.fmx ANDROID}

{$R *.GGlass.fmx ANDROID}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Label1.Text := '按返回键将会出现一个对话框!';

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

  MainActivity.finish; { 退出程序 }

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

  {$IFDEF ANDROID}

    Application.MainForm.DisposeOf; { 退出程序 }

    halt(0);

  {$ENDIF}

end;

 

procedure TForm1.Button4Click(Sender: TObject);

var

  Intent: JIntent;

begin

  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_MAIN);

  Intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME);

  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);

  SharedActivityContext.startActivity(Intent);

end;

 

procedure TForm1.Button5Click(Sender: TObject);

begin

  Application.Terminate;

end;

 

procedure TForm1.Button6Click(Sender: TObject);

begin

  Close;

end;

//此代码报错,不可用,原因不明。

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;

  Shift: TShiftState);

begin

  if Key = vkHardwareBack then//如果按下物理返回键

  begin

    Label1.Text := '1';

    if MessageDlg('确认退出吗?', TMsgDlgType.mtConfirmation,

    [TMsgDlgBtn.mbOK, TMsgDlgBtn.mbCancel], -1) = mrOK then

      MainActivity.finish; { 退出程序 }

    Key := 0;//必须的,不然按否也会退出

    Exit;

  end;

end;

 

end.

 

来源:https://www.cnblogs.com/FKdelphi/p/4685907.html


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.085393190383911 seconds