即使在将launchMode指定为singleTask之后,也会创建我的活动的多个实例的奇怪问题。有人遇到过这个问题吗?任何指针都将受到赞赏。
以下是我在清单中宣布我的活动的方式:
<activity
android:name="com.test.TestActivity"
android:launchMode="singleTask">
<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" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
这就是我在活动中发挥作用的方式:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, sharedText);
sendIntent.setType("text/plain");
activity.startActivity(Intent.createChooser(sendIntent, "Share"));
我正在测试它的Android版本是5.1.1
答案 0 :(得分:0)
如果您想要摆脱活动的多个实例,请尝试使用 singleInstance 。
<activity
android:name=".MainActivity"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
EXTRA NOTE:
singleTask : - 将始终创建一个新任务,并将新实例作为根推送到任务。但是,如果有任何活动 实例存在于任何任务中,系统将意图路由到该任务 activity实例通过onNewIntent()方法调用。在这种模式下, 活动实例可以推送到同一个任务。这种模式很有用 作为入口点的活动。
singleInstance : - 与singleTask相同,只是no活动实例可以推送到singleInstance的同一任务中。 因此,启动模式下的活动始终是单一的 活动实例任务。这是一种非常专业的模式,应该 仅用于完全作为一个实现的应用程序 活性。
Copied from :
https://stackoverflow.com/a/36520016/3669559
答案 1 :(得分:0)
所以看来问题出在设备上。在具有相同Android版本的模拟器和其他设备上,singleTask工作正常。