• 启动应用程序的Activty多种方式


    启动应用程序的Activity总共有三种方式,如下:

    1>通过包名得到将启动应用的入口Activity,然后给intent附上相应的属性即可.

     示例代码

    public static void startApp(final Context context, final String pkgname) {

    PackageInfo pi = null;

    try {

               pi = context.getPackageManager().getPackageInfo(pkgname, 0);

    } catch (NameNotFoundException e) {

               e.printStackTrace();

    }

    if (pi == null) {

            return;

    }

    Intent resolveIntent = new Intent(Intent.ACTION_MAIN);

    resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);

    resolveIntent.setPackage(pi.packageName);

    List<ResolveInfo> apps = context.getPackageManager().queryIntentActivities(resolveIntent, 0);

    ResolveInfo ri = apps.iterator().next();

    if (ri != null) {

            String className = ri.activityInfo.name;

            Intent intent = new Intent(Intent.ACTION_MAIN);

            intent.setPackage(pkgname);

    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK

    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

    ComponentName cn = new ComponentName(pkgname, className);

    intent.addFlags(0x10000000);

    intent.setComponent(cn);

    context.startActivity(intent);

    }

    }

     

    2>指定包名和想要入口的activity名

     示例代码:

    public static void startApp(final Context context, final String pkgname,final String activityName) {
        ComponentName componetName = new ComponentName(pkgname,activityName);
        try {
              Intent intent = new Intent();
              intent.setComponent(componetName);
              context.startActivity(intent);
           } catch (Exception e){
           }
    }

    3>指定启动的Action

    public static void startAppAction(final Context context,final String actionValue) {
          Intent intent = new Intent(actionValue);
          context.startActivity(intent);
    }

     

  • 相关阅读:
    hexo命令报错
    开始使用hexo
    javascript 获取元素
    javascript DOM属性操作
    javascript DOM节点操作
    javascript 完美拖动效果
    ubuantu 18.04 LTS 版本解决网易云安装启动问题
    课后作业-阅读任务-阅读提问-3
    C# 并行循环
    C# 委托
  • 原文地址:https://www.cnblogs.com/lianghe01/p/4288619.html
Copyright © 2020-2023  润新知