zoukankan      html  css  js  c++  java
  • 启动应用程序的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);
    }

     

  • 相关阅读:
    jmeter_逻辑控制器
    Mysql-10 存储过程
    Mysql-9 视图
    NAS性能测试
    win系统定时任务设置
    服务端监控有哪些客户端链接了服务
    centos8 添加端口号
    centos8下安装gitlab服务
    【Unity】Galgame视觉小说游戏 其脚本解释器的一种实现
    【个人向】ctf比赛出的一道逆向游戏题——GameTime题解
  • 原文地址:https://www.cnblogs.com/lianghe01/p/4288619.html
Copyright © 2011-2022 走看看