在我的应用程序(容器)内启动不同的应用程序
如何在我自己的应用程序中运行不同的应用程序。当我开始活动我想表明它在我的应用程序中,并与来自不同应用程序的活动取代我的容器活动(但recent tasks
还是应显示为“容器应用程序”在我的应用程序(容器)内启动不同的应用程序
PackageManager manager = context.getPackageManager();
Intent intent = manager.getLaunchIntentForPackage(packageName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
context.startActivity(intent);
context.finishAffinity();
这种开放的新任务,我recent tasks
标签。但如何保持在相同的任务?
这是不可能的。
每个应用程序运行在其自己的过程中。但是,如果您在两个应用程序中为android:shareUserID
和android:process
分配了相同的值并使用相同的证书对它们进行签名,则可以使多个应用程序以相同的过程运行。
Can multiple Android applications share a single process and application context?
首先,在Android的 “应用程序” 的概念略是扩展的。
一个应用程序 - 技术上是一个过程 - 可以有多个活动,服务,内容提供者和/或广播监听者。如果其中至少有一个正在运行,则应用程序已启动并正在运行(进程)。
所以,你必须确定的是你想如何“启动应用程序”。
好吧......这里就是你可以尝试一下:
创建行动= MAIN和类别= LAUNCHER 意图使用context.getPackageManager packageManager.queryIntentActivity当前上下文获取PackageManager(0)其中意图有category = LAUNCHER,action = MAIN或packageManager.resolveActivity(,0)以获得主/发射器的第一个活动 获取您感兴趣的活动信息 从ActivityInfo获取包名和名称 最后,创建另一个intent with category = LAUNCHER,action = MAIN,componentName = new ComponentName(packageName,name)and setFlags(Intent.FLAG_ACTIVITY_ NEW_TASK) 最后,context.startActivity(newIntent)
片段是去这里的路 –
据我所知,这是不可能的。 – AnixPasBesoin
@AHoneyBustard你可以用碎片解释你的方法吗?我想知道这件事。 – AnixPasBesoin