【问题标题】:Android app behaves differently in "recent apps" list when launched from SEND Intent从 SEND Intent 启动时,Android 应用程序在“最近的应用程序”列表中的行为不同
【发布时间】:2013-02-08 09:50:17
【问题描述】:

我有一个对一些文本数据进行操作的简单 Android 应用程序。应用程序有两种调用方式:1) 从启动器启动应用程序并手动输入文本数据,或 2) 使用 SEND Intent 与其共享一些文本。

当通过启动器启动时,一切都按照我的预期运行。当通过共享功能启动并随后使用应用程序切换器/最近的应用程序按钮时,应用程序显示为“Android 系统”,如果我切换离开它就会消失。我希望它像任何其他应用程序一样出现在该列表中,并且在切换离开时仍然存在。所以问题是:为什么我的应用程序从不同的意图启动时表现不同?我确信关于 Intent、Activity 和 Tasks 有一些基本的东西我不了解,但我什至无法确定在哪里查看。

这是清单的相关部分。

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.stub2.Main"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
          <action android:name="android.intent.action.SEND" />
          <category android:name="android.intent.category.DEFAULT" />
          <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
</application>

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    例如,用户使用ACTION_SEND 和一些文本abc 调用您的活动Main。还有一次,他打电话给Main,发短信zzz。然后,您将在最近的列表中拥有 2 个 Main 实例,它们具有不同的意图。


    编辑

    您可以使用AdapterActivity 等“适配器”活动注册ACTION_SEND,然后将文本转发到Main。这样,您的应用(Main 活动)只有在用户从启动器启动时才会在最近的应用中列出。

    <activity
        android:name="AdapterActivity"
        android:excludeFromRecents="true" />
    

    还有更多的活动标签here

    【讨论】:

    • 如果我按照这些步骤操作,我会得到与当前在 Main 活动中处理两个意图时完全相同的行为。我想要的是两种意图(ACTION_MAIN,ACTION_SEND)在最近的应用程序列表中导致相同的应用程序行为。请注意,在启动 Main Activity 之前创建第二个“Adapter Activity”或设置 FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 都不会对此行为产生任何影响。
    • @monkeyfacebag 谢谢。我错过了一些东西。您可以尝试编辑的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多