【Android】从当前Apk启动另外一个已经安装的Apk

来源:互联网 发布:雅马哈节奏音色软件 编辑:程序博客网 时间:2024/06/06 06:48

1.概述

       在实际开发的过程中,我们的产品可能不只一个Apk,即包含两个或两个以上的Apk,或者我们根据需要在特定情境下启动另外一个已安装的Apk,这个Apk可以是系统自带的或者普通的Apk。下面就介绍一下如何从当前Apk启动另外一个Apk。

2.实例代码

package com.example.demo;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;/** * Description: 测从当前Apk启动其它Apk实例 *  * @author danDingCongRong * @Version 1.0.0 * @Created at 2014-8-10 23:14:19 * @Modified by [作者] on [修改日期] */public class TestLauncherOtherApkActivity extends Activity {private Button btnLauncherNormalApk;private Button btnLauncherSystemApk;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);initView();}private void initView() {btnLauncherNormalApk = (Button) findViewById(R.id.btnLauncherNormalApk);btnLauncherSystemApk = (Button) findViewById(R.id.btnLauncherSystemApk);btnLauncherNormalApk.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 启动自己写的一个ApkIntent intent = new Intent();// ComponentName有多个构造函数,这里使用的构造函数要求第一个参数是要启动的Apk的PackageName,// 第二个参数是要启动的Apk的启动Activity的名字,其它构造函数可自己查阅ComponentName componentName = new ComponentName("com.example.qq","com.example.qq.activity.main.SplashActivity");intent.setComponent(componentName);startActivity(intent);}});btnLauncherSystemApk.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 启动系统自动的日历ApkComponentName componentName = new ComponentName("com.android.calendar","com.android.calendar.LaunchActivity");Intent intent = new Intent();intent.setComponent(componentName);startActivity(intent);}});}}

3.备注

       虽然启动的是启动的另外一个Apk,但是当从这个Apk返回时,仍然回到启动它的页面(如果显示的销毁它)。


0 0