首页 > 代码库 > Android实例-程序切换到后台及从后台切换到前台
Android实例-程序切换到后台及从后台切换到前台
相关资料:
http://www.delphitop.com/html/Android/2933.html
注意事项:
使用moveTaskToBack/moveTaskToFront需要应用程序有reorder tasks授权,如果没有权限,执行时程序会闪退。
实例代码:
1 unit Unit1; 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 procedure Button1Click(Sender: TObject); 19 procedure Button2Click(Sender: TObject); 20 procedure Button3Click(Sender: TObject); 21 procedure Timer1Timer(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 procedure No1SendAppToBack; 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 function SharedActivityManager: JActivityManager; 56 var 57 AService: JObject; 58 begin 59 AService := SharedActivityContext.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE); 60 Result := 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 73 SharedActivityManager.moveTaskToFront(SharedActivity.getTaskId,TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 74 end; 75 76 //隐藏程序并在5秒后再显示 77 procedure TForm1.Button1Click(Sender: TObject); 78 begin 79 //隐藏程序 80 No1SendAppToBack; 81 //打开定时器,显示程序(5秒后显示) 82 Timer1.Enabled := True; 83 end; 84 85 procedure TForm1.Button2Click(Sender: TObject); 86 begin 87 //隐藏程序 88 No2SendAppToBack; 89 end; 90 91 procedure TForm1.Button3Click(Sender: TObject); 92 begin 93 //显示程序 94 No2SendAppToFront; 95 end; 96 97 procedure TForm1.Timer1Timer(Sender: TObject); 98 begin 99 //显示程序100 No2SendAppToFront;101 Timer1.Enabled := False;102 end;103 104 end.
Android实例-程序切换到后台及从后台切换到前台
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。