C++ Builder XE10.1 在安卓下把程序进行后台/前台切换代码分享

titan_ysl 2016-06-12 08:10:51
今天做安卓下的程序需要把程序切换到后台,在google是找了一阵,安卓的或.net或Delphi的都有,就是没C++ Builder的,于是只好照着Delphi的改了一份,现在给大家分享出来。

头文件要加一个。
#include <Androidapi.Helpers.hpp>

//切换任务(程序)到后台
void moveTaskToBack(void)
{
_di_JIntent intent;
intent = TJIntent::JavaClass->init();
intent->setAction(TJIntent::JavaClass->ACTION_MAIN);
intent->setFlags(TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK);
intent->addCategory(TJIntent::JavaClass->CATEGORY_HOME);
SharedActivity()->startActivity(intent);
}

//得到ActivityManager类指针
_di_JActivityManager SharedActivityManager(void)
{
_di_JObject AService;
AService = SharedActivityContext()->getSystemService(TJContext::JavaClass->ACTIVITY_SERVICE);
_di_JActivityManager ActivityManager;
ActivityManager=TJActivityManager::Wrap(static_cast<_di_ILocalObject>(AService)->GetObjectID());
return ActivityManager;
}

//使用ActivityManager类的切换任务到前台函数。
SharedActivityManager()->moveTaskToFront(SharedActivity()->getTaskId(),TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK);

本来delphi的例子中,ActivityManager类中也有个moveTaskToBack函数,不过,不知为什么,在C++ builder的.hpp文件中没找到。
...全文
909 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysyzqm-zqm 2020-01-15
  • 打赏
  • 举报
回复
做个标记,以后会用到,谢谢楼主
titan_ysl 2016-07-17
  • 打赏
  • 举报
回复
还有一个_di_JFMXNativeActivity接口的,moveTaskToBack函数,这个也是用来把自己的程序隐藏到后台的,和先前的那个函数稍有不同的是,前面的那个是在隐藏后把桌面显出来,而这个是隐藏后把系统的进程队列中最前面的显出来。 使用方法: #include <FMX.Platform.Android.hpp> MainActivity()->moveTaskToBack(true);
w88529593 2016-06-15
  • 打赏
  • 举报
回复
ccrun.com 2016-06-15
  • 打赏
  • 举报
回复
 欢迎分享。
titan_ysl 2016-06-12
  • 打赏
  • 举报
回复
对了,moveTaskToFront函数需要授权使用,在工程文件的Options-Uses Permissions中,要选中Reorder tasks。

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧