在用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 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(                "com/lyy/test/MainActivity",                "mini",                "()V");}
void AndroidInterface::moveToFront(){    QAndroidJniObject::callStaticMethod(                "com/lyy/test/MainActivity",                "moveTaskToFrount",                "()V");}






更多相关文章

  1. Android studio 使用心得(八)----测试程序单元测试
  2. 谷歌被曝即便禁止定位仍在后台收集用户位置信息
  3. 让你自己编写的Android的Launcher成为系统中第一个启动应用程序,
  4. 如何在自己的App中调用Android系统自带的安装/卸载程序
  5. 【Android API指南】App组件(1) - 应用程序基础
  6. Android Studio多个用户界面的程序设计(一)
  7. Android中的进程简介(可见进程,前台进程,后台进程等)
  8. Android如何用json格式传数据到后台(SSM) 做一个简单的登录流程

随机推荐

  1. Android中资源文件的使用
  2. Android(安卓)Webview 基本使用总结
  3. 使用jQuery Mobile和Phone Gap开发Androi
  4. Qt on Android:让 Qt Widgets 和 Qt Quick
  5. Android的Activity屏幕切换动画(二)-左右
  6. Google Android(安卓)SDK开发范例大全(第
  7. Android活动Acitivity启动模式之singleTo
  8. Android应用程序签名验证过程分析
  9. Android中各种JAVA包的功能描述
  10. Android技术架构演进