代码之家  ›  专栏  ›  技术社区  ›  Pete.Mertz

如何从ResolveInfo启动意向

  •  26
  • Pete.Mertz  · 技术社区  · 12 年前

    我正在尝试为android制作一个自定义启动器,我正在尝试找出如何从我的应用程序中启动不同的应用程序。我觉得做这件事的方法是有意的,我在这里找到了一个帖子:

    Open another application from your own (intent)

    不过我真的不明白答案!有人能给我一个简洁的片段或一系列步骤吗?从一个ResolveInfo到启动由该ResolveInfo表示的应用程序?

    2 回复  |  直到 7 年前
        1
  •  49
  •   CommonsWare    12 年前

    给定 ResolveInfo 命名的 launchable 以下为:

    ActivityInfo activity=launchable.activityInfo;
    ComponentName name=new ComponentName(activity.applicationInfo.packageName,
                                         activity.name);
    Intent i=new Intent(Intent.ACTION_MAIN);
    
    i.addCategory(Intent.CATEGORY_LAUNCHER);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
                Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    i.setComponent(name);
    
    startActivity(i);
    

    (来自 https://github.com/commonsguy/cw-omnibus/tree/master/Introspection/Launchalot )

        2
  •  22
  •   Daniel De León    11 年前

    通过这种方式创建一个新的意向。

        Intent intent = new Intent();
        intent.setClassName(resolveInfo.activityInfo.applicationInfo.packageName,
                resolveInfo.activityInfo.name);
        startActivity(intent);