• 启动应用程序的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);
    }

     

  • 相关阅读:
    Python中的iterable该怎么理解?
    python中request中的params,data,json参数含义全解
    pycharm中查看变量值的方法汇总
    java多綫程
    spring boot 注解
    在Windows环境中使用Nginx, Consul, Consul Template搭建负载均衡和服务发现服务
    linux系统之四 常用工具
    linux系统之一 全连接与半连接队列
    linux系列之三 tcp缓冲区
    linux系统之二 文件句柄数
  • 原文地址:https://www.cnblogs.com/lianghe01/p/4288619.html
Copyright © 2020-2023  润新知