【问题标题】:Open another application's activity in the Same Task?在同一任务中打开另一个应用程序的活动?
【发布时间】:2015-04-27 12:07:45
【问题描述】:

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

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

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

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

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

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

更新

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

【问题讨论】:

    标签: java android android-intent task


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 你能再检查一次更新吗...??我们如何删除 taskAffinity ?
    • @Shasi:引用the documentation for android:taskAffinity:“要指定活动与任何任务没有关联,请将其设置为空字符串。”
    • @CommonsWare 如果我在另一个应用程序中启动一个活动,该应用程序在清单文件中有自己的android:taskAffinity。是否有任何方法或解决方法可以在我的应用程序的同一任务中启动该活动?
    • @NhấtGiang:我不知道,虽然这是一个我不太涉足的领域,所以我可能会忘记一些东西...... :-(
    • @CommonsWare 我在我的应用程序中遇到了问题,我从另一个应用程序启动了一个活动(使用startActivityForResult)。因为该活动是在一个新任务中启动的,所以后堆栈中有 2 个任务。我需要检测用户在哪里按下返回键以返回我的应用程序的任务,或者他们按下主页键,然后转到最近的应用程序并将我的任务从后台带到前台。因为在两种情况下,我总是在onActivityResult 回调中收到相同的结果。
    【解决方案2】:

    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();
    }
    

    【讨论】:

    • 我不是有意打开内置应用程序。我通常会尝试从我的另一个应用打开一个应用,这两个应用都是。
    • 好的,我没看懂你的问题,另外我可以建议你,可以查看这个链接hmkcode.com/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2013-03-16
    相关资源
    最近更新 更多