• 深入分析:Android中app之间的交互(二,使用ComponentName)


            在前一篇相关主题的博文中我们了解了怎样使用Action来启动当前应用之外的Activity处理我们的业务逻辑,在本篇笔记中我在简介一下使用ComponentName来与当前应用之外的应用进行交互。

            在介绍Component之前,我们首先来了解ComponentName这个类;ComponentName与Intent同位于android.content包下。我们从Android官方文档中能够看到。这个类主要用来定义可见一个应用程序组件,比如:Activity。Service。BroadcastReceiver或者ContentProvider。

            那么。怎样用ComponentName来定义一个组件呢。

            这是ComponentName的构造函数:ComponentName(String pkg。String cls)

            我们知道在Android应用程序中假设要具体描写叙述一个组件我们须要知道该组件所在的应用包名,也就是在AndroidManifest.xml文件里manifest根结点下的package=“XXX.XXXXX.XXXXX"。还有组件在应用程序中的完整路径名,拿Activity来说,也就是activity节点中name属性的值。因此到这里我们也就明确了能够使用ComponentName来封装一个组件的应用包名和组件的名字。

            我们已经知道,在Android中组件之间的交流往往使用意图(Intent)来完毕的。那么在Intent中有一个方法能够封装一个ComponentName,最后我们在使用意图去完毕我们须要实现的功能。

            以下我们用详细的代码来描写叙述怎样使用ComponentName来帮助我们与其它应用程序交互:

            首先我们要新建两个Android应用程序,appsend和appreceiver。

            appreceiver的AndroidMainfest.xml


    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       <span style="color:#cc0000;"> <strong>package="com.example.appreceiver"</strong></span>
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="11"
            android:targetSdkVersion="18" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
               <strong><span style="color:#ff0000;"> android:name="com.example.appreceiver.MainActivity"</span></strong>
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

    appsend中的启动Activity的片段:

    	public void button(View view) {
    		<strong><span style="color:#ff0000;">ComponentName cn=new ComponentName("com.example.appreceiver", "com.example.appreceiver.MainActivity");</span></strong>
    		Intent intent = new Intent();
    		<strong><span style="color:#ff0000;">intent.setComponent(cn);</span></strong>
    		startActivityForResult(intent, 2);
    	}

    完整案例,已经打包上传至csdn了。如有须要能够下载来看,点击打开链接











  • 相关阅读:
    使用yum 安装时出现 : Loaded plugins: fastestmirror
    三级店铺发布店铺悬赏必看
    专属包发布说明
    发布店铺内容(原封不动的直接复制内容发布就可以)
    tomcat 专属图片文件夹配置
    java websocket时时通信
    lua面向对象
    jenkins 查看请求调用栈信息
    从一个简单的例子看spring ApplicationContext上下文隔离
    java异常查看利器之使用 jvmti 的Callback_JVMTI_EVENT_EXCEPTION 事件查看异常
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6851906.html
Copyright © 2020-2023  润新知