`

启动另外的一个应用程序的Activity(三种方式)

 
阅读更多

第一种(我自己写的) 之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity.   

  1. //这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activity  
  2.         ComponentName componetName = new ComponentName(  
  3.                 //这个是另外一个应用程序的包名  
  4.                 "com.poynt.weibo",  
  5.                 //这个参数是要启动的Activity  
  6.                 "com.poynt.weibo.ui.IndexActivity");  
  7.          
  8.             try {  
  9.                 Intent intent = new Intent();  
  10.                 intent.setComponent(componetName);  
  11.                 startActivity(intent);  
  12.             } catch (Exception e) {  
  13. //              Toast.makeText(getApplicationContext(), "可以在这里提示用户没有找到应用程序,或者是做其他的操作!", 0).show();  
  14.                   
  15.             }  
复制代码



第二种

:这里是启动另外一个程序的Activity之后,并把参数传过去!
  1. 在一个Android应用程序A中调用另一个Android程序B,同时传递数据给B  
  2.   
  3. ComponentName componentName = new ComponentName(  
  4.             "com.xiaohua.player.activity",  
  5.             "com.xiaohua.player.activity.PlayerActivity");  
  6.         Intent intent = new Intent();  
  7.         Bundle bundle = new Bundle();  
  8.         bundle.putString("resUrl", resurl);  
  9.         bundle.putSerializable("picUrlList", picurllist);  
  10.         intent.putExtras(bundle);  
  11.         intent.setComponent(componentName);  
  12.         startActivity(intent);  
  13. 注:  
  14. com.xiaohua.player.activity:包路径  
  15. PlayerActivity:Activity类  
  16. resUrl :String类型  
  17. picUrlList:数组,也可以是对象  
  18. 应用程序安装后,按以上方式可进行调用.  
  19.   
  20.   
  21. 接受activity:  
  22. public void getParameterByIntent() {  
  23.    Intent mIntent = this.getIntent();  
  24.    String resUrl = mIntent.getStringExtra("resUrl");  
  25.   String[] picUrlList = (String[]) mIntent.getSerializableExtra("picUrlList");  
  26.    if (null != picUrlList) {  
  27.      int count = picUrlList.length;  
  28.      for (int i = 0; i < count; i++) {  
  29.         Log.e("tag", "picUrlList[" + i + "]" + picUrlList);  
  30.      }  
  31.    }  
  32. }  
  33.   
  34. 来自:http://hi.baidu.com/huaxinchang/blog/item/5fa81903474097f409fa9305.html  
复制代码




第三种在一个apk中调用另外一个apk中的activity
转自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=69600
其实,这本来是一件很简单的事情,但是小编发现很多人问这个问题,所以写篇小文章供eoe的朋友们参考。

系统提供了很多可以直接调用的Activity,通过指定的Intent就可以调用,比如打开搜索的:

  1. Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);  
  2. intent.putExtra(SearchManager.QUERY,"searchString") 
  3. startActivity(intent);
复制代码



Intent.ACTION_WEB_SEARCH是一个字符串,是“搜索”这个Activity的标识,extra是传给这个activity的一些数据。发送出这个intent之后,系统根据action字符串Intent.ACTION_WEB_SEARCH知道了是要调用哪个activity,如果有重名,会弹出一个选择对话框。然后打开此activity,实现想要做的事情。



那么,我们自己怎么来实现呢。



首先,写一个activity,在AndroidManifest.xml里面的intent-filter中,给这个activity命名:

 

  1. <intent-filter>   
  2.         <action android:name="chroya.foo"/>   
  3.         <category android:name="android.intent.category.DEFAULT"/>   
  4. </intent-filter>
复制代码




然后安装。安装完毕之后,你会发现,系统中找不到这个程序。别急,它确实安装在手机里面了,但是因为他不是main的,所以系统不会把他当做Application的入口程序。



而要想打开这个activity,只有知道它名字的人才可以。跟系统的intent一样使用。它的名字定义为"chroya.foo",所以,这里用这个字符串就可以调用它了:

  1. Intent intent = new Intent("chroya.foo");   
  2. startActivity(intent);   
复制代码

 

小编用刚才举的那个系统的intent说明,它的activity里面使用 getIntent().getBundleExtra(SearchManager.QUERY)来接收传递进来的搜索字符串参数。而这个 SearchManager.QUERY是关键字。如果要自己实现这种功能,只需要定义好关键字,然后从BundleExtra中取就行了。
 
分享到:
评论

相关推荐

    一个应用程序启动另一个应用程序

    1.应用程序内的activity跳转 2.一个应用程序启动另一个应用程序(直接启动或者通过广播)

    android中的Activity启动方式

    一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。 其中standard是系统默认的启动...

    允许其他应用程序去启动您的Activity-Allowing Other Apps to Start Your Activity

    例如:如果你建立了一个能和用户朋友共享信息或图片的社会应用程序,实现Action-Send意图会成为你的最大利益,那样用户就可以从另一个程序中发起一个“分享”的行动,并且启动你的程序执行行动。

    Android应用程序的Activity启动过程简要介绍和学习计划

    Android应用程序的Activity启动过程简要介绍和学习计划

    Android应用程序的Activity启动过程简要介绍和学习计划.doc

    Android应用程序的Activity启动过程简要介绍和学习计划.docAndroid应用程序的Activity启动过程简要介绍和学习计划.docAndroid应用程序的Activity启动过程简要介绍和学习计划.docAndroid应用程序的Activity启动过程...

    Activity启动过程简要介绍

    Activity和Service是应用程序的核心组件,程序框架层提供了一套完整的机制来协助应用程序启动Activity和Service

    与其他应用程序进行交互 - Interacting with Other Apps.

    一个Android应用程序通常都会有若干个Activity,每一个Activity都让用户执行指定的操作(例如查看地图或照相)。把用户从一个Activity带到另一个...使用Intent甚至可以允许你的应用程序启动一个独立应用程序的Activity。

    收到广播后启动一个应用程序

    BroadcastReceiver中启动Activity,broadcast不会直接显示一个用户界面,而是启动一个activity来响应它们所接受到的信息或是使用 NotificationManager警示用户。Notification有很多方式能引起用户的注意。

    上海建桥学院-移动应用开发-实验报告2-Activity组件通信

    点击“使用显示启动”按钮和“使用隐式启动”按钮,均能跳转至界面2,如图2所示,前者使用显示启动方式,后者使用隐式启动方式,两种启动方式均将界面1中的数据传递至界面2中。 2、 点击界面1中的按钮后,跳转至...

    android_应用程序开发

    简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如监听系统事件,为用户显示指定的View,启动其他Activity等。所有应用的Activity都继承于android.app.Activity类,该类是...

    Android应用程序进程管理

    这个PPT讲Android应用程序进程的启动和回收,主要涉及到Zygote进程、System Server进程,以及组件管理服务ActivityManagerService、窗口服务WindowManagerService,还有专用驱动Low Memory Killer。通过了解Android...

    Android应用程序启动过程源代码分析

    在上一篇文章Android应用程序的Activity启动过程简要介绍和学习计划中,我们举例子说明了启动Android应用程序中的Activity的两种情景,其中,在手机屏幕中点击应用程序图标的情景就会引发Android应用程序中的默认...

    Android应用启动另外一个apk应用的方法

    本文实例讲述了Android应用启动另外一个apk应用的方法。分享给大家供大家参考,具体如下: 在开发的过程中,经常会遇到在一个应用中启动另外一个apk应用的情况 问题的核心点在于我们要拿到第三方apk的package名称跟...

    android 退出app 退出应用程序

    退出app的两种方式 1 创建activity的基类,让所有的activity都继承该基类,在基类中创建一个静态的activity列表,并在oncreate方法添加该activity, 在退出时,遍历该list的activity,逐个关闭每一个activity,从而...

    android中Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

    在一个应用程序中通常由多个Activity构成,都会在Manifestxml中指定一个主的Activity,如下设置 当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的...

    使用phonegap插件启动另一个Android Activity

    使用phonegap框架开发android应用程序,免不了需要涉及js与java原生代码的交互,自定义phonegap插件可以满足这个需求。 在本教程中,介绍了怎么使用phonegap插件跳转到另一个Android Activity

    ActivityLauncher, 启动隐藏的活动并为已经安装的应用程序创建快捷方式.zip

    ActivityLauncher, 启动隐藏的活动并为已经安装的应用程序创建快捷方式 ActivityLauncher这个为已经安装的应用启动隐藏的activity,并创建主屏幕快捷方式。 来自:...

    Android应用示例-开机启动

    安卓应用开机启动功能的演示示例,原理:当Android系统完成BOOT阶段之后,就会发送一条名为 ACTION_BOOT_COMPLETED 的广播,我们便可在一个BroadcastReceiver中捕获这条广播,然后启动我们的Activity或者Service!

Global site tag (gtag.js) - Google Analytics