我有一个简单的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>
答案 0 :(得分:1)
例如,用户使用Main
调用您的活动ACTION_SEND
以及一些文字abc
。另一次,他用文字Main
来调用zzz
。然后,您将在最近的列表中有2个Main
实例,具有不同的意图。
<小时/> 修改
您可以使用ACTION_SEND
之类的“适配器”活动注册AdapterActivity
,然后将文字转发至Main
。通过这种方式,如果用户从启动器启动,您的应用(Main
活动)将仅列在最近的应用中。
<activity
android:name="AdapterActivity"
android:excludeFromRecents="true" />
还有更多活动代码here。