在打开之前关闭活动

时间:2013-11-19 20:41:53

标签: android android-intent sdk

我正在使用意图将信息发送到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”,但效果相同。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,当您发送意图并且应用程序在后台打开时,它只是重新排序到前面?如果是,请尝试设置FLAG_ACTIVITY_NEW_TASK标志。即使相同的活动在后台打开,它也会打开活动,因此您将有两个实例