android启动另一应用

http://www.2cto.com/kf/201203/122910.html

Android SDK中有这样一个API:

public abstract Intent getLaunchIntentForPackage (String packageName)

如果packageName存在返回入口Intent, startActivity(Intent)可以启动应用,否则返回nullimport
android.app.Activity;

下面有个小示例:

[java] view plaincopy

  1. import android.content.Intent;

  2. import android.content.pm.PackageInfo;

  3. import android.content.pm.PackageManager;

  4. import android.os.Bundle;

  5. import android.view.View;
  6. public class Main extends Activity {

  7. /** Called when the activity is first created. */

  8. @Override

  9. public void onCreate(Bundle savedInstanceState) {

  10. super.onCreate(savedInstanceState);

  11. setContentView(R.layout.main);

  12. PackageManager packageManager = getPackageManager();

  13. Intent intent=new Intent();

  14. intent =packageManager.getLaunchIntentForPackage("pkgName");

  15. if(intent==null){

  16. System.out.println("APP not found!");

  17. }

  18. startActivity(intent);

  19. }

  20. }

  1. //-----启动我们自身写的程序------------------

  2. mButton01.setOnClickListener(new Button.OnClickListener(){

  3. public void onClick(View v) {

  4. //-----核心部分----- 前名一个参数是应用程序的包名,后一个是这个应用程序的主Activity名

  5. Intent intent=new Intent();

  6. intent.setComponent(new ComponentName("com.droidnova.android.games.vortex",

  7. "com.droidnova.android.games.vortex..Vortex"));

  8. startActivity(intent);

  9. }

  10. });

  11. //-----启动系统自带的应用程序------------------

  12. mButton02.setOnClickListener(new Button.OnClickListener(){

  13. public void onClick(View v) {

  14. Intent intent=new Intent();

  15. intent.setComponent(new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity"));

  16. startActivity(intent);

  17. }

  18. });

//这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activity 
ComponentName
componetName = new
ComponentName( 
//这个是另外一个应用程序的包名 
"com.poynt.weibo", 
//这个参数是要启动的Activity 
"com.poynt.weibo.ui.IndexActivity");

Android在一个应用中启动另一个应用的Activity


为 activity 添加 intent-filter
的定义。
通过测试发现,只要添加如下语句,activity就可以被正常调用:
<intent-filter>
<action
android:name=""/>
</intent-filter>

相应的启动代码为:
Intent
intent = new Intent();
intent.setClassName(<package name>,
<class
name>);
startActivity(intent);

时间: 2024-08-04 00:19:02

android启动另一应用的相关文章

android学习笔记--android启动过程之init.rc文件浅析

1.  init.rc文件结构文件位置:init.c  : /system/core/initinit.rc  : /system/core/rootdir 首先init.rc文件是以模块为单位的,每个模块里的内容都是一起执行的,模块分为3种类型:on.service.import.我们可以看下init.rc文件是怎么写的:1.import import /init.usb.rc import /init.${ro.hardware}.rc import /init.trace.rc 上面的内容

解决android 启动白屏问题

Android 启动APP时黑屏白屏的三个解决方案 http://www.cnblogs.com/liqw/p/4263418.html android:windowSoftInputMode属性使用 http://www.blogjava.net/zhip/archive/2011/02/14/344258.html

android启动之SystemServer启动

SystemServer是Android系统的核心,APK应用中能够直接交互的大部分系统服务都在该进程中运行,常见的比如WindowManagerServer(Wms).ActivityManagerSystemService(AmS). PackageManagerServer(PmS)等,这些系统服务都是以一个线程的方式存在于SystemServer进程中. startSystemServer systemServer是通过zygote启动的时候fork启动的,我们先看回到ZygoteIni

android启动之init启动

整个Android系统的启动分为Linux kernel的启动和Android系统的启动.Linux kernel启动起来后,然后就运行第一个用户程序,在Android中,就是init程序,上一博文已经介绍. Init进程始终是第一个进程.Init进程的对应的代码的main函数在目录system/core/init/init.c,先来总体看一下这个main函数. main函数 int main(int argc, char **argv) { //首先声明一些局部变量 int fd_count

android启动时报错Unable to instantiate application xxxx:java.lang.NullPointerException

如果程序已经运行,再安装到手机的时候总是报以下错误.而且是在打开特定的Activity的情况下才会报错. 06-26 09:45:16.971: E/AndroidRuntime(29733): java.lang.RuntimeException: Unable to instantiate application com.css.promotiontool.ui.CSSAppliction: java.lang.NullPointerException06-26 09:45:16.971:

Delphi XE5 for Android 启动无黑屏等待总结

Delphi XE5 for Android 启动无黑屏等待总结  从embarcadero官方技术论坛找了下参考资料,对黑屏处理应该来说有了相应的办法,并且这种办法具有很好的应用价值,因此做了个总结,Delphi XE5 无黑屏从本质上讲是使用Android 原生开发语言java ,编写的程序启动时首先加载java编写的SplashScreen的activity,然后在splashScreenActivity中启动delphi FireMonkey中的com.embarcadero.firem

Android启动过程

Android启动过程 1.  加载Linux内核 2. Android init进程对各种设备进行初始化,运行Android Framework所需用的各种Daemon(后台进程/守护进程),Context Manager,MediaServer,Zygote等 以下是init进程执行的Daemon进程: USB Daemon(usbd): 管理USB连接 Android Debug Bridge Daemon(adbd): Android  Debug Bridge连接管理 Debugger

android启动之子系统切换

转载请注明文章出处和作者! 出处:http://blog.csdn.net/xl19862005 大家多多支持偶家媳妇的网店:http://wen1991.taobao.com 作者:大熊(Xandy) 1.总述 在android系统中有好几个子系统(recovery.factory及power off charge),那么这些子系统是如何与主系统之间进行切换的呢? (recovery系统的切换与启动已经在另一篇博客里写过了 http://blog.csdn.net/xl19862005/art

android启动之zygote启动

上一博文介绍了init进程启动,在解析init.rc 的时候会把zygote加到service列表中,并最终启动,zygote启动的实际是app_process程序.zygote是init进程的子进程.在Android系统中,所有的应用程序以及系统服务,包括SystemServer都是由Zygote fork出来的,这就是为什么它叫zygote(受精卵)的原因.我们再来看一下.rc文件的描述: service zygote /system/bin/app_process -Xzygote /sy

android启动界面

启动界面的效果图: 实现的原理:在一个线程中让几幅图片进行循环显示,实现了动画的效果. 主要的实现类LoadingView是自定义控件,继承了ImageView,实现了Runnable接口 : package wht.android.loading; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.Imag