启动Activity的类型

100 阅读1分钟
  1. App启动另外app的Activity的方式

7.1 通过自定义action启动

这种方式只需要在代码中设置一个action即可, 系统会自动过滤去找到这个action所对应的Activity

 

当前APP的代码

Intent intent = new Intent();

//这里是采用的自定义action

intent.setAction("transBundle.app");

startActivity(intent);

 

待启动APP 的activity在AndroidManifest.xml中的配置

<!- 需要配置对应的自定义action->

<activity

        android:name=".MyActivity"

        android:label="@string/app_name" 

        android:exported="true">

       

           

           

       

   

 

7.2 通过在Intent中通过指定包名和类名来查找

直接在当前APP中写以下代码,即可打开指定APP的activity

ComponentName componetName = new ComponentName(  

            "com.poynt.weibo",  //这个是另外一个应用程序的包名  

            "com.poynt.weibo.ui.IndexActivity");   //这个参数是要启动的Activity的全路径名

 

        try {  

            Intent intent = new Intent();  

            intent.setComponent(componetName);  

            startActivity(intent);  

        } catch (Exception e) {  

            Toast.makeText(getApplicationContext(), "可以在这里提示用户没有找到应用程序,或者是做其他的操作!", 0).show();  

        }

 

7.3 通过scheme启动

其实这个方法和方法1类似, 只是说增加了scheme参数, scheme更多的用于 在网页或者H5上来启动我们的APP, 比如在手机官网上通过scheme可以直接打开我们的app, 这里我们只是从APP用scheme启动另一个APP

 

当前应用的代码:

Uri uri = Uri.parse("app://my.test");

Intent intent = new Intent("transBundle.app", uri);

startActivity(intent);

 

待打开APP的AndroidManifest配置

 <activity

        android:name=".MyActivity"

        android:label="service" 

        android:exported="true">