如何在 Delphi 上最小化 Android 应用程序?

Mau*_*ima 2 delphi android firemonkey delphi-10.1-berlin

我试过:

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin
if Key = vkHardwareBack then begin
Key := 0;
Form1.WindowState := TWindowState.wsMinimized; // Also tried Application.MainForm
end;
end;
Run Code Online (Sandbox Code Playgroud)

但是,当您第一次点击时,屏幕会变黑,当您第二次点击时,应用程序将关闭。如何避免这种情况?

And*_*bel 5

Android 的方式是切换到桌面,而不是尝试最小化您的应用程序。至少有两种方法可以实现这一目标:

第一种可能性是调用:

MainActivity.movetasktoback(true);
Run Code Online (Sandbox Code Playgroud)

第二种可能是:

var
  Intent: JIntent;
begin
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_MAIN);
  Intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME);
  tandroidhelper.activity.startActivity(Intent);
Run Code Online (Sandbox Code Playgroud)

但是我注意到,在 Delphi 下,这两种方式在重新激活时似乎都会导致黑屏应用程序。