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

时间: 2024-07-29 10:10:42

启动应用程序的Activty多种方式的相关文章

springboard 无法启动应用程序(错误 -3)

在Xcode上进行objective-c开发,使用ios模拟器,出现 springboard 无法启动应用程序(错误 -3) 解决方式: 关闭iOS模拟器,然后重新运行程序.

(转)连接带有密码的ACCESS数据库时出现“无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开”的解决方法

原文:http://www.cnblogs.com/chiname/articles/582539.html 连接带有密码的ACCESS数据库时出现“无法启动应用程序.工作组信息文件丢失,或是已被其它用户以独占方式打开”的解决方法:此问题是由数据库的连接串引起的,可用下面的串连接即可 Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=true;Data Source=<YourPath>;Jet OLEDB:Database Pass

多种方式来判断mysql是否启动

#!/bin/sh monitor mysql run #by zkg 2019-08-05 #下面是多种方式来判断mysql是否启动#local 监控#if [ "netstat -lnt |grep 3306|awk '{print $4}'|awk -F: '{print $2}'" = "3306" ]#if [ ps -ef |grep mysql|grep -v grep|wc -l -gt 0 ]#if [ netstat -lntup|grep my

多种方式来判断web是否启动

#!/bin/sh monitor web run #by zkg 2019-08-05 #下面是多种方式来判断web是否启动#local 监控#if [ "netstat -lnt |grep 80|awk '{print $4}'|awk -F: '{print $2}'" = "80" ]#if [ ps -ef |grep httpd|grep -v grep|wc -l -gt 0 ]#if [ netstat -lntup|grep httpd|wc -

从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)

前言 由于一个同学问到我如何按照一个流程走好之后回到首页,我以前看到过4个解决方案,后来发现有做个记录和总结的必要,就写了这篇博文.(之前看小强也写过一篇,这里通过自身的分析完整的总结一下以下6种方案,并加上一个DEMO便于大家了解大体流程) 在android的用户交互中,按钮触发的意图(Intent)跳转会为你重新打开新的一个界面活动(Activity),对于之前的界面根据需求进行摧毁(Finish())或则保留. 如果一个交互流程中,是从A开始,按照A - B - C - D - A这样的顺

MFC 启动其他程序

尝试了多种方式之后都无法成功地在对话框程序中弹出一个单文档程序,然后我想到了这个办法. 如果直接在代码中实现某些窗口的弹出比较麻烦,可以采用这个方式来弹出这种窗口. 如果需要传递参数,只需将数据写入文件,然后再在弹出的窗口程序中对文件进行读取解析即可. 类似的,还可以通过socket在不同程序间进行参数数据的传输. 启动其他程序的函数: WinExec("C:\\app.exe",SW_SHOW); 包含头文件  #include "windows.h" 即可.

杂谈——Android从启动到程序运行发生的事情

转载请注明出处 博客地址:http://blog.csdn.net/JonsTank2013/article/details/51118563 作者:李中权 前言 好久没有写博客了,瞬间感觉好多学了的东西不进行一个自我的总结与消化总归变不成自己的.通过博客可能还可以找到一些当初在学习的时候没有想到的问题.想了半天,从大二上学期自学Android以来还没有对Android从启动到程序运行期间进行一个完整的归纳,刚好最近又学到了一些新东西,那就以这篇博客为媒介,总结一下从Android启动到程序运行

Spring学习总结(一)——Spring实现IoC的多种方式

控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了. IoC是Spring框架的核心内容,使用多种方式完美的实现了IoC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现Io

多种方式实现文件下载功能

(1)使用 NSURLConnection 直接方式 (2)使用 NSURLConnection 代理方式 (3)使用 NSURLSession 直接方式 (4)使用 NSURLSession 代理方式 (5)使用 AFNetworking 方式 附加功能: 使用 AFNetworking 中的 AFNetworkReachabilityManager 相关操作来检查网络情况: AFNetworkReachabilityStatusReachableViaWiFi:Wi-Fi 网络下 AFNet