将 Android 程序切换到后台及从后台切换到前台实现

有时候, 我们需要将自己的 Android 程序切换到后台运行, 在必要时, 将其切换到前台运行下面提供了一种实现方式, 首先需要引用三个单元:

uses Androidapi.JNI.App,Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers;

将应用程序切换到后台, 这里提供了两种方法, 一种是将应用切换回桌面来实现, 执行后相当于按下 Home 键:

procedure SendAppToBack(Sender: TObject); var intent:JIntent; begin intent:= TJIntent.Create; intent.setAction(TJIntent.JavaClass.ACTION_MAIN); intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME); SharedActivityContext.startActivity(intent); end;

另一种办法是调用 JActivityManager.moveTaskToBack 函数, 这种相当于按下返回键, 但程序没有退出我们先需要实现一个 ActivityManager 的服务实例, XE7 没有提供默认函数, 咱们模仿写一个, 这个函数在后面将程序切换到前台时一样需要用到:

function SharedActivityManager: JActivityManager; var AService: JObject; begin AService := SharedActivityContext.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE); Result := TJActivityManager.Wrap((AService as ILocalObject).GetObjectID); end;

现在切换到后台, 只需要一句代码:

procedure SendAppToBack; begin SharedActivityManager.moveTaskToBack(SharedActivity.getTaskId,TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); end;

反过来, 切换到前台也只需要一句代码:Delphi/Pascal

procedureBringAppToFront;beginSharedActivityManager.moveTaskToFront(SharedActivity.getTaskId,TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);end;

使用 moveTaskToBack/moveTaskToFront 需要注意, 应用程序需要 reorder tasks 的授权 (自己到项目设置里勾选上就 OK 了)

来源: http://www.bubuko.com/infodetail-2495398.html

java 切换后台程序_将 Android 程序切换到后台及从后台切换到前台实现相关推荐

  1. java写一个android程序_【Android开发笔记】3.编写第一个Android程序

    前言 上一节我们通过一个Demo熟悉了Eclipse的基本使用.如何在模拟器和手机中运行以及如何打包成APK,但没具体编写代码,相信很多同学已经按耐不住了吧,这一节我们会动手编写代码来熟悉Androi ...

  2. java反编译微信小程序_微信小程序反编译的实现

    首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...

  3. 自学java编译老是出错_编写HelloWorld程序编译时提示写入HelloWorld时出错是什么意思...

    编写HelloWorld程序编译时提示写入HelloWorld时出错是什么意思 这个能出错的地方就难说了,能给出代码或者错误提示吗 为什么javac编译后说写入错误呢HelloWorld.java : ...

  4. 微信公众账号后台怎么解除小程序_微信小程序怎么注销账号_微信小程序注销方法_快吧小程序...

    微信小程序一直存在一个问题:开发者不能注销自己的小程序.之前当开发者需要彻底清除小程序信息时,只能够通过暂停服务或关闭"允许被搜索"的方式曲线救国.现在,这个问题终于解决了. 在微 ...

  5. 微信公众账号后台怎么解除小程序_微信小程序解除绑定 微信小程序怎么授权...

    该如何注销小程序? 微信小程序目前无法取消,也是微信小程序最脆弱.最无助的地方.如果你确定你不想要这个小程序,你可以转移和改变主题和其中的所有信息,这样你的小程序就会变成别人的小程序,与你无关.相当于 ...

  6. 比较windows phone程序启动和android程序启动原理

    windows phone 程序是如何启动的了,他和android程序有什么区别,我们重点从native code 层面来分析 在windows phone 程序启动的时候是: 在XAML中使用应用程 ...

  7. webview 个人小程序_微信小程序新增Webview它是什么东西?

    原标题:微信小程序新增Webview,它是什么东西? 今天刚刚给客户做完案子,正准备去睡觉.2017 今天刚刚给客户做完案子,正准备去睡觉.2017年11月3日 11:29看到了微信公众平台推送的小程 ...

  8. ready等方法 微信小程序_微信小程序开发一些经验

    对于微信小程序开发入门,还是比较简单的,只需要具备基本的css+js知识就可以了,成本比较低. 写了小程序和RN之后,有一种原生很笨重的感觉,就是小程序或者是RN等这些新的开发方式在效率上面真的有比较 ...

  9. 移动应用程序和网页应用程序_移动应用程序的站点可靠性工程

    移动应用程序和网页应用程序 理论指导 (A Theoretical Guide) You must have heard about the term Site Reliability Enginee ...

最新文章

  1. 美国拟将14项关键技术列入出口管制清单 商务部回应
  2. 对 makefile 中 .NOTPARALLE 的学习体会
  3. 面向对象第四单元(UML)总结体会课程总结
  4. nginx 配置文件参数说明
  5. c语言double root,C语言修仙
  6. 工作的思考十六:层次的提升 - 团队
  7. Linux虚拟机下mysql 5.7安装配置方法图文教程
  8. python基础--字典
  9. 《Python金融大数据风控建模实战》第4章 数据清洗与预处理
  10. c语言公交查询系统,公交路线查询系统(基于数据结构和C语言)完整
  11. 教你用Python批量下载音乐功能,无需安装播放器,直接下载!
  12. C语言希冀平台作业-南京晓庄
  13. 如何使用Redis缓存 ?
  14. JavaScript|表格隔行变色(可作模板copy)
  15. Div与Span标签详解
  16. linux cgi 更改网络配置,惨绝人寰的蓝点linux2.0配置perl cgi-CGI教程,CGI文档
  17. SSM框架自学(四)——Maven项目管理工具快速入门
  18. [InteliJ IDEA] 系统资源不足
  19. 水木清华100个爆笑签名
  20. python背景图颜色_matplotlib作图,刻度和背景颜色

热门文章

  1. Hibernate懒/急加载示例
  2. 使用SPANN方式将Spring&Quartz与自定义注释集成
  3. 递归调用方法时栈内存是如何变化的?(使用内存图演示递归调用过程)
  4. axure元件库 文件上传_手把手教你打造一套属于产品经理自己的元件库
  5. LeetCode 09. 回文数
  6. C语言 | 链表概述
  7. markdown 流程图_Markdown 进阶技能:用代码画流程图(编程零基础也适用)
  8. 英特尔 620 显卡 驱动 七代cpu_英特尔的智能“整体厨房”
  9. matlab优化 带参数设置,优化选项参考 - MATLAB Simulink - MathWorks 中国
  10. Ubuntu文件上锁了,怎么打开???亲测有效