Android 在一个应用中如何启动另外一个已安装的应用
如何在一个应用中 通过某个事件,而去启动另外一个已安装的应用。
而为了能让大家更加容易的理解,我写了一个简单的Demo,我们的程序有俩个按钮,其中一个点击会启动我自己写的应用(一个3D应用为例),而另外一个按钮会启动系统自带的应用(如,日历,闹钟,计算器等等).这里我一日历为例子!
首先看一下我们的效果图(点击第一个按钮为例):
下面是Demo的详细步骤:
一、新建一个Android工程命名为StartAnotherApplicationDemo.
二、修改main.xml布局,代码如下:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="WelcometoMrWei'sBlog."
- />
- <Button
- android:id="@+id/button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="StartAnotherApplication"
- />
- <Button
- android:id="@+id/start_calender"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="StartCalendar"
- />
- </LinearLayout>
三、修改主程序StartAnotherApplicationDemo.java代码如下:
- packagecom.android.tutor;
- importandroid.app.Activity;
- importandroid.content.ComponentName;
- importandroid.content.Intent;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.widget.Button;
- publicclassStartAnotherApplicationDemoextendsActivity{
- privateButtonmButton01,mButton02;
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mButton01=(Button)findViewById(R.id.button);
- mButton02=(Button)findViewById(R.id.start_calender);
- //-----启动我们自身写的程序------------------
- mButton01.setOnClickListener(newButton.OnClickListener(){
- publicvoidonClick(Viewv){
- //-----核心部分-----前名一个参数是应用程序的包名,后一个是这个应用程序的主Activity名
- Intentintent=newIntent();
- intent.setComponent(newComponentName("com.droidnova.android.games.vortex",
- "com.droidnova.android.games.vortex..Vortex"));
- startActivity(intent);
- }
- });
- //-----启动系统自带的应用程序------------------
- mButton02.setOnClickListener(newButton.OnClickListener(){
- publicvoidonClick(Viewv){
- Intentintent=newIntent();
- intent.setComponent(newComponentName("com.android.calendar","com.android.calendar.LaunchActivity"));
- startActivity(intent);
- }
- });
- }
- }
四、执行之,将得到如上效果!