我正在使用意图将信息发送到Android中的社交网络应用程序并在其中发布消息。
问题是如果我尝试调用它时应用程序已经打开,它只是打开它而不发送消息。否则,如果应用程序已关闭并且我调用此意图,它将打开应用程序并正确发送消息。
在意图中,我可以使用标志:Intent.FLAG_ACTIVITY_CLEAR_TASK
并在打开之前关闭我要调用的活动。它很完美,它解决了这个问题。
但是......这个标志只适用于Android 3.0(API LEVEL 11),我的应用程序至少针对Android 2.1。
还有其他选择可以做这样的事吗?
这是我的代码:
for(final ResolveInfo app : activityList)
{
if((app.activityInfo.name).contains(socialNetwork.value))
{
installed = true;
try
{
final ActivityInfo activity = app.activityInfo;
final ComponentName name = new ComponentName(activity.applicationInfo.packageName, activity.name);
shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shareIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
shareIntent.setComponent(name);
context.startActivity(shareIntent);
break;
}
catch(Exception e){}
}
}
我想删除“FLAG_ACTIVITY_CLEAR_TASK”,但效果相同。
答案 0 :(得分:0)
如果我理解正确,当您发送意图并且应用程序在后台打开时,它只是重新排序到前面?如果是,请尝试设置FLAG_ACTIVITY_NEW_TASK标志。即使相同的活动在后台打开,它也会打开活动,因此您将有两个实例