PackageManger.getLaunchIntentForPackage(String packageName)获取Intent对象启动Activity的坑

启动Activity的方法有很多种,其中通过PackageManger.getLaunchIntentForPackage(String packageName)获取Intent对象也可以启动Activity,代码如下:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.vending");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
      | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
this.startActivity(intent);

不过退出应用时经常显示一下上次打开的应用界面,解决方法:给intent对象添加执行动作Action的附加信息(Category),代码如下:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.android.vending");
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
      | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
AriesLauncher2.this.startActivity(intent);
退出后返回Launcher界面,也可以用CATEGORY_HOME(返回home界面)

你可能感兴趣的:(Android开发-错误集)