1 unitUnit1;2
3 interface
4
5 uses
6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,8 FMX.Controls.Presentation, FMX.StdCtrls, FMX.ScrollBox, FMX.Memo;9
10 type
11 TForm1 = class(TForm)12 Timer1: TTimer;13 Button1: TButton;14 Label1: TLabel;15 Button2: TButton;16 Button3: TButton;17 Memo1: TMemo;18 procedureButton1Click(Sender: TObject);19 procedureButton2Click(Sender: TObject);20 procedureButton3Click(Sender: TObject);21 procedureTimer1Timer(Sender: TObject);22 private
23 {Private declarations}
24 public
25 {Public declarations}
26 end;27
28 var
29 Form1: TForm1;30
31 implementation
32 uses
33 Androidapi.JNI.App,//需要引入
34 Androidapi.JNI.GraphicsContentViewText,//需要引入
35 Androidapi.Helpers,//需要引入
36 Androidapi.JNI.JavaTypes,//需要引入
37 Androidapi.JNIBridge;//需要引入
38
39 //使用moveTaskToBack/moveTaskToFront需要应用程序有reorder tasks授权,如果没有权限,执行时程序会闪退。
40
41 {$R *.fmx}
42 //方法一:隐藏程序
43 procedureNo1SendAppToBack;44 var
45 intent:JIntent;46 begin
47 intent:= TJIntent.Create;48 intent.setAction(TJIntent.JavaClass.ACTION_MAIN);49 intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);50 intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME);51 SharedActivityContext.startActivity(intent);52 end;53
54 //方法二:获得活动管理器
55 functionSharedActivityManager: JActivityManager;56 var
57 AService: JObject;58 begin
59 AService :=SharedActivityContext.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE);60 Result := TJActivityManager.Wrap((AService asILocalObject).GetObjectID);61 end;62
63 //方法二:隐藏程序
64 procedureNo2SendAppToBack;65 begin
66 //网上说XE7是支持的,但是我用XE8不知道为什么不行。
67 //SharedActivityManager.moveTaskToBack(SharedActivity.getTaskId,TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
68 end;69
70 //方法二:显示程序
71 procedureNo2SendAppToFront;72 begin
73 SharedActivityManager.moveTaskToFront(SharedActivity.getTaskId,TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);74 end;75
76 //隐藏程序并在5秒后再显示
77 procedureTForm1.Button1Click(Sender: TObject);78 begin
79 //隐藏程序
80 No1SendAppToBack;81 //打开定时器,显示程序(5秒后显示)
82 Timer1.Enabled :=True;83 end;84
85 procedureTForm1.Button2Click(Sender: TObject);86 begin
87 //隐藏程序
88 No2SendAppToBack;89 end;90
91 procedureTForm1.Button3Click(Sender: TObject);92 begin
93 //显示程序
94 No2SendAppToFront;95 end;96
97 procedureTForm1.Timer1Timer(Sender: TObject);98 begin
99 //显示程序
100 No2SendAppToFront;101 Timer1.Enabled :=False;102 end;103
104 end.