1

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

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

这是清单的相关部分。

<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>
4

1 回答 1

1

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


编辑

您可以注册ACTION_SEND“适配器”活动,例如AdapterActivity,然后将文本转发到Main。通过这种方式,Main如果用户从启动器启动它,您的应用程序(活动)将仅在最近的应用程序中列出。

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

这里有更多的活动标签。

于 2013-02-07T03:17:08.387 回答