Android实例-程序切换到后台及从后台切换到前台

少年辛苦终身事,莫向光阴惰寸功。这篇文章主要讲述Android实例-程序切换到后台及从后台切换到前台相关的知识,希望能为你提供帮助。

Android实例-程序切换到后台及从后台切换到前台

文章图片

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

 

    推荐阅读