zoukankan      html  css  js  c++  java
  • Android实例-退出程序

    Android实例-退出程序   

    http://www.cnblogs.com/FKdelphi


    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.

     

  • 相关阅读:
    smobiler介绍(二)
    smobiler介绍(一)
    iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法
    iOS 力学动画生成器UIKit Dynamics 之碰撞效果讲解
    iOS 解决tableView中headerView头部视图不跟随tableView滑动的方法
    iOS 当使用FD_FullscreenPopViewController的时候遇到scrollView右滑手势无法使用的解决
    iOS 点击左上角系统返回按钮方法
    解决右滑返回手势和UIScrollView中的手势冲突
    Git 常见的命令操作
    iOS Class 使用NSProxy和NSObject设计代理类的差异
  • 原文地址:https://www.cnblogs.com/karkash/p/7253228.html
Copyright © 2011-2022 走看看