Android编程实现在一个程序中启动另一个程序的方法

本文实例讲述了Android编程实现在一个程序中启动另一个程序的方法。分享给大家供大家参考,具体如下:

Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。

一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动:

Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent);

但是更多的时候,我们一般都不知道应用程序的启动Activity的类名,而只知道包名,我们可以通过ResolveInfo类来取得启动Acitivty的类名。

下面是实现代码:

private void openApp(String packageName) { PackageInfo pi = getPackageManager().getPackageInfo(packageName, 0); Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER); resolveIntent.setPackage(pi.packageName); List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null ) { String packageName = ri.activityInfo.packageName; String className = ri.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent); } }

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android操作SQLite数据库技巧总结》、《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

时间: 2024-10-26 20:26:36

Android编程实现在一个程序中启动另一个程序的方法的相关文章

广告-在android应用程序中启动其他apk程序,被启动程序退出后返回之前的程序

问题描述 在android应用程序中启动其他apk程序,被启动程序退出后返回之前的程序 大家好,我现在遇到这样的情况,我目前做的是一个android积分墙的项目,用户通过我的这个项目app做任务下载一个广告,当用户进入到我们的下载广告的apk 后,玩了一段时间后(玩了一段时间才会给积分),点击后退,当前的 广告apk 是退出了,同时我们的项目也退出了(原本我们的项目逻辑是不会退出的),回到了桌面......我们自己测试的时候并没有出现这样的情况,但是用户遇到了,并且用户反馈再次重启手机的时候,再

刚刚接触docker,想请问有没有可能在一个docker中启动另一个docker

问题描述 刚刚使用docker,现在需要在一个docker中启动另外一个docker.不是说以这个docker容器为宿主环境启动docker容器,而是在这个docker容器的宿主环境下启动另一个docker容器,想这个请问有没有可能实现?非常感谢 解决方案 解决方案二:多搜索搜索,这个不是我的领域!解决方案三:我也刚接触,可是感觉不可以.个人觉得理解了docker和虚拟机的区别应该可以回答这个问题吧.解决方案四:你是在说swarm吗?

怎样在一个类中调用另一个类的方法

问题描述 小弟新学.net,自己建了一个operate类,里面有一些方法实现诸如绑定datagrid之类的操作,又建了一个DBAccess类,想在里面实现页面控件绑定数据库数据的功能.比如operate类里面有方法BindDataGrid(stringsql,DataGriddg),我想在DBAccess里实现publicvoidBindUser(DataGriddg){stringsql="select*fromuser";operate.BindDataGrid(sql,dg)}在

在一个程序后面运行另一个程序

问:怎样在一个程序运行后面运行另一个程序? ●1. 在一个程序里面运行另一个程序的最简单的方法是把它们依次列入一个批处理文件(扩展名为.BAT的文件),在执行该批处理文件时,其中所列程序就会自动运行.在C或DOS中,都没有一种特定的方法来完成"在一个程序结束后运行另一个程序"这样一种函数调用.然而,C提供了两组函数,它们允许一个程序随时可以运行另一个程序,而后者的运行将结束前者的运行.如果你将这样的函数调用放在第一个程序的末尾,就能达到上述目的.C提供的这两组函数是exec()和spa

android-Android编程在一个view中开启另一个view

问题描述 Android编程在一个view中开启另一个view LZ是Android入门菜鸡,求大神拯救,我在程序的一开始用xml布局文件写了一个按钮,然后这个xml是以view的形式显示的,我的设想是一点击按钮,程序就在当前view中开启另一个画图的view. 最开始是这样声明的 ```public float xAxis = 0; public float yAxis = 0; private Button start; private LayoutInflater layIn; priva

Android实现软件列表的点击启动另外一个程序功能【附demo源码下载】_Android

本文实例讲述了Android实现软件列表的点击启动另外一个程序功能.分享给大家供大家参考,具体如下: 目前面世的许多软件中有这么一个功能:设备中安装了哪些软件,他们会以一个软件列表清单的形式向用户展示出来. 今天我们就来实现这一功能: 运行环境: motorola defy+ 系统2.3.6 主要 API : PackageInfo,PackageManager,LayoutInflater,ApplicationInfo PackageManger类,它的主要职责是管理应用程序包. 通过它,我

android-在一个程序中启动其他程序老被强退?

问题描述 在一个程序中启动其他程序老被强退? 我已经获取了手机中的程序列表,并添加了setOnItemLongClickListener()方法代码部分如下lv.setOnItemLongClickListener(new OnItemLongClickListener(){ public boolean onItemLongClick(AdapterView<?> parent View v int position long id){ String activityName = null;

微信启动-在程序中启动微信一直出现这个错误

问题描述 在程序中启动微信一直出现这个错误 在程序中启动微信一直出现这个错误Unable to find explicit activity class { com.tencent.mm /com.tencent.mm.ui.LauncherUI}; have you declared this activity in your AndroidManifest.xml? 代码: Intent intent = new Intent(); ComponentName cmp = new Compo

Android编程开发之EditText中inputType属性小结

本文总结分析了Android编程开发之EditText中inputType属性.分享给大家供大家参考,具体如下: android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式. android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以inputType尤为重要. 复制代码 代码如下:<EditText android:layout_width="fill_