在同一个任务中打开另一个应用程序的活动?

时间:2015-04-27 12:07:46

标签: java android android-intent task

例如,当我从应用程序中打开F acebook Login page时,屏幕(activity)被加载到同一Task stack中。

以同样的方式,我想从我的应用程序打开另一个应用程序的活动,加载到同一个任务堆栈中,而不是启动新任务。

通常,当我们访问其他应用程序时,我们使用" FLAG_ACTIVITY_NEW_TASK",这会创建新任务。

但是如何在同一个任务中加载其他应用程序的活动?

目标新应用程序不是内置的Intent activities(如email, contact, call等)

我正在尝试从一个应用程序中打开另一个应用程序的活动。

更新

我想我不能说清楚。我在设备中安装了应用程序A和应用程序B,这两个应用程序都由我制作,而不是系统构建的。现在我想从应用程序A的活动访问应用程序B的main_activity,并且仍然保留在同一个任务中。感谢

2 个答案:

答案 0 :(得分:3)

  

但是如何在同一个任务中加载其他应用程序的活动?

首先,不要使用FLAG_ACTIVITY_NEW_TASK。这表示不想要新任务。

其次,确保您开始的活动没有taskAffinitylaunchMode会干扰此活动。

因此,例如,startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));将在您的任务中启动日期和时间设置屏幕。大多数设置屏幕都有taskAffinity,这仍然会在单独的任务中结束。

答案 1 :(得分:0)

用于inbulit邮件应用程序:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL  , new String[]{"test@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT   , "Content");
try {
    startActivity(Intent.createChooser(intent, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "No email clients installed.", Toast.LENGTH_SHORT).show();
}