如何最大限度地减少我的活动并将主发射器放在前面,而不是之前的活动?
我需要这个,因为我从我的应用程序设置了一个壁纸(这不是一个动态壁纸,只是一个普通的应用程序),需要将家庭启动器带到前面,以便用户查看新壁纸。是否有可能做到这一点?我尝试了finish()
,但它将之前的应用程序放在了前面,而不是家用启动器。
答案 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将会显示。