如何将家用发射器放在前面,而不是之前的活动?

时间:2013-02-15 21:48:30

标签: android minimize android-launcher

如何最大限度地减少我的活动并将主发射器放在前面,而不是之前的活动?

我需要这个,因为我从我的应用程序设置了一个壁纸(这不是一个动态壁纸,只是一个普通的应用程序),需要将家庭启动器带到前面,以便用户查看新壁纸。是否有可能做到这一点?我尝试了finish(),但它将之前的应用程序放在了前面,而不是家用启动器。

3 个答案:

答案 0 :(得分:0)

Action的意图:

Intent.ACTION_MAIN

和类别:

Intent.CATEGORY_HOME

Will Suffice

例如:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

这将允许用户回到他们各自的家。无论发射器类型(adw,launcherpro,stock等)。特别是所有发射器都将处理此意图行动/类别。

答案 1 :(得分:0)

试试这个。我知道这是一篇很老的帖子,但希望将来会对某人有所帮助。

final PackageManager packageManager=getPackageManager();
Intent intent = null;
Intent intentToResolve = new Intent(Intent.ACTION_MAIN);

List<Intent> targettedHomeIntents = new ArrayList<Intent>();

for(final ResolveInfo resolveInfo:packageManager.queryIntentActivities(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME), PackageManager.MATCH_DEFAULT_ONLY))
{
    if(!getPackageName().equals(resolveInfo.activityInfo.packageName))  //if this activity is not in our activity (in other words, it's another default home screen)
    {
        intent = new Intent(intentToResolve);
        //intent.setClassName(resolveInfo.activityInfo.applicationInfo.packageName, resolveInfo.activityInfo.name);
        intent.setPackage(resolveInfo.activityInfo.applicationInfo.packageName);

        intent.setAction(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_HOME);
        intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

        targettedHomeIntents.add(intent);
    }
}

if(targettedHomeIntents.size() > 0){
    if(targettedHomeIntents.size() == 1) {
        startActivity(targettedHomeIntents.get(0));
    } else {
        Intent chooserIntent = Intent.createChooser(targettedHomeIntents.remove(0), "Select Home");
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targettedHomeIntents.toArray(new Parcelable[]{}));
        startActivity(chooserIntent);
    }
}

答案 2 :(得分:0)

Intent.FLAG_ACTIVITY_TASK_ON_HOME添加到意图标记中,以便将启动器与目标Activity一起带到前端任务,这样当您完成目标活动时,Launcher将会显示。