2

如何最小化我的活动并将主页启动器放在前面,而不是以前的活动?

我需要这个,因为我从我的应用程序(不是动态壁纸,只是一个常规应用程序)设置了一个壁纸,并且需要将主页启动器放在前面,以便用户查看新壁纸。是否有可能做到这一点?我试过finish()了,但它把以前的应用程序带到了前面,而不是主启动器。

4

3 回答 3

0

Action 的意图:

Intent.ACTION_MAIN

和类别:

Intent.CATEGORY_HOME

就足够了

前任:

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

这将允许用户回到他们各自的家中。无论启动器类型如何(adw、launcherpro、库存等)。具体来说,所有启动器都将处理此 Intent Action/Category。

于 2013-02-15T21:56:09.480 回答
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);
    }
}
于 2013-09-09T11:50:20.713 回答
0

添加Intent.FLAG_ACTIVITY_TASK_ON_HOME到意图标志中,将启动器与目标活动一起带到最前面的任务,这样当你完成目标活动时,启动器就会出现。

于 2014-01-11T03:49:43.533 回答