在用Qt开发android应用的时候碰到这样的需求,点击某按钮后将程序最小化,也就是说将其移到后台运行,程序本身没有退出,这相当于点击了Home键。而当程序收到某个广播后又将后台运行的程序打开显示到最前端,原理很简单,同样还是先通过android接口实现相应功能,然后在C++端调用。

首先,如果是一个新创建的Qt工程,需要创建一个AndroidManifest.xml文件,创建过程不再赘述,然后创建一个Java的类,继承于

public class MainActivity extends org.qtproject.qt5.android.bindings.QtActivity

定义一个公有的静态函数

最小化,将程序移到后台:

public static void mini()
{m_instance.moveTaskToBack(true);
}

其中m_instance是本窗口对象this

将软件移到前台

public static void moveTaskToFrount(){if(!m_instance.isForeground(m_instance.getPackageName())){ActivityManager am = (ActivityManager)m_instance.getSystemService(Context.ACTIVITY_SERVICE);am.moveTaskToFront(m_instance.getTaskId(),0);}}
private boolean isForeground(String packageName){ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();if (appProcesses == null)return false;for (RunningAppProcessInfo appProcess : appProcesses) {// The name of the process that this object is associated with.if (appProcess.processName.equals(packageName)&& appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {return true;}}return false;}

需要导入包

import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.ActivityManager.RunningAppProcessInfo;

然后看C++ 调用

void AndroidInterface::showMini()
{QAndroidJniObject::callStaticMethod<void>("com/lyy/test/MainActivity","mini","()V");
}
void AndroidInterface::moveToFront()
{QAndroidJniObject::callStaticMethod<void>("com/lyy/test/MainActivity","moveTaskToFrount","()V");
}

Qt for Android调用Android接口将程序移到后台/前台运行相关推荐

  1. 让程序在服务器后台持续运行

    让程序在服务器后台持续运行 1.安装screen CentOS系列: yum install screen Ubuntu系列: sudo apt-get install screen 2.创建scre ...

  2. Qt for Android调用原生接口打开相机拍照并存储照片

    Qt开发Android应用,需求是通过调用Android原生接口去打开系统相机拍照,并返回拍摄的照片.原理很简单,现在Java文件中写android代码调用相机,拍照后将将相片存储在SD卡,然后在C+ ...

  3. Qt for Android 调用android原生接口分享图片或文字

    在用Qt开发android应用的时候,有一个需求是通过调用android原生接口去实现图片分享功能,原理很简单,首先在java文件中用android接口封装一个分享功能的方法,然后在C++中调用QAn ...

  4. Qt for Android调用android原生控件安装apk

    Qt开发Android应用,做软件升级的时候,需要调用android借口安装程序, 首先在java文件中用android接口封装一个分享功能的方法,然后在C++中调用 QAndroidJniObjec ...

  5. Android调用微博接口

    1.没有密钥的朋友 请在这里注册一个移动应用,http://open.weibo.com/ .注册成功后在应用信息->基本信息中即可获得APP KEY 和 APP SECRET,没有这两个KEY ...

  6. android调用web接口,Android调用webservice 接口

    以查询手机号码归属地的Web service为例,它的wsdl为 1 在Android项目中导入??Ksoap2-android jar第三方jar包?? 2 Activity代码 public cl ...

  7. Qt for Android调用android原生Toast控件

    用Qt开发Android应用,有时候会想着直接调用android原生的一些组件或者打开某些android的系统界面,比如调用Toast显示消息提醒.打开android系统设置页面.这里主要讲解如何通过 ...

  8. android调用webservice传参数,android调用webservice接口获取信息

    我的有一篇博客上讲了如何基于CXF搭建webservice,service层的接口会被部署到tomcat上,这一篇我就讲一下如何在安卓中调用这些接口传递参数. 1.在lib中放入ksoap2的jar包 ...

  9. android调用java接口_java/Android 接口调用的几种写法

    虽然Handler用的地方比较普遍,但是接口也有他的独特之处,比较直观,然后降低了耦合性 如有一接口,需要将数据传给使用的activity中,接口如下 public interfacePushValu ...

最新文章

  1. arial unicode ms字体_5个检测商用字体和免费字体合集的网站
  2. 凝血酶分子机器人_了不得!这个机器人可以拟制癌细胞生长
  3. 美国“四院院士”特伦斯谈人工智能“瓶颈”:远未达极限,数学家已经有了实现AI可解释性的理论工具...
  4. 「2019 嵌入式智能国际大会」 399 元超值学生票来啦,帮你豪省 2600 元!
  5. Ubuntu18.04 快捷键和点击图标无法打开终端显示Failed to execute child process “gnome-terminal“
  6. 分布式缓存技术memcached学习系列(五)—— memcached java客户端的使用
  7. Autograd看这一篇就够了!
  8. 【吐血整理】Java项目源码分享
  9. matlab nist接口文件,RefProp流体热物理性质计算程序与Matlab接口
  10. win10 64位 Compaq Visual Fortran(CVF)安装教程
  11. CentOS7.0离线安装RHadoop
  12. 王天官系古盐山县(今孟村县王帽圈)人
  13. canal 记录 ROWDATA TRANSACTIONBEGIN
  14. Fitness Notes 健身笔记
  15. 什么是linux系统?
  16. 使用MATLAB Compiler
  17. 一些常用的html、css、js的简单应用
  18. 【Leet Code】229. Majority Element II---Medium
  19. 钦州学院计算机视频,(钦州学院数学与计算机科学学院.doc
  20. Java安全之BCEL ClassLoader

热门文章

  1. AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器???
  2. 曾几何时,我们炼的不是丹,是特征
  3. 如何科学地完成一场 AR 发布会?
  4. 2 年来,每个人最该感谢的,是坚持学习、用心分享的自己
  5. 栈与队列基本操作及其应用
  6. UIModalPresentationStyle 各种类型的区别
  7. openlayer 3 在layer上添加feature
  8. linux基础(1)-yum源配置
  9. Android网络开发之Volley--Volley自定义Request
  10. PCA与LDA算法的解释,浅显易懂