博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android实例-程序切换到后台及从后台切换到前台
阅读量:6473 次
发布时间:2019-06-23

本文共 2828 字,大约阅读时间需要 9 分钟。

 

相关资料:

程序包下载:

 

注意事项:

使用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.

 

转载于:https://www.cnblogs.com/FKdelphi/p/5946703.html

你可能感兴趣的文章
Http和Https
查看>>
Django使用Channels实现WebSocket--上篇
查看>>
Java 设计模式(三)《单例模式》
查看>>
个人博客
查看>>
IDEA 快捷键(Windows)
查看>>
关于双重锁单例模式
查看>>
小白的进阶之路之vue源码解读(0)
查看>>
《Miss Talk》第05期:对话唱唱启蒙英语技术总监 李超
查看>>
【Android架构】基于MVP模式的Retrofit2+RXjava封装之多Url(七)
查看>>
MockJS快速入门
查看>>
linux目录简介
查看>>
【我的技术我做主】坚持为未来
查看>>
mac终端命令
查看>>
LyncPlus能干什么
查看>>
nginx+keepalived简单实现双击热备-高可用HA
查看>>
我的友情链接
查看>>
关于code::block无法调试
查看>>
Vmware Tools安装过程(Linux 环境)
查看>>
IOS设置SSH登陆
查看>>
深入理解CSS中的层叠上下文和层叠顺序
查看>>