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

 

相关资料:

http://www.delphitop.com/html/Android/2933.html

程序包下载:

http://download.csdn.net/detail/zhujianqiangqq/9649918 

注意事项:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值