美文网首页
AIDL简单示例

AIDL简单示例

作者: EmpathyBasic | 来源:发表于2020-03-08 16:38 被阅读0次

    A应用

    (一)新建AIDL文件

    interface AidlInterface {
        /**
         * Demonstrates some basic types that you can use as parameters
         * and return values in AIDL.
         */
        String getName();
    }
    

    (二)新建服务

    class AidlService : Service() {
        override fun onBind(intent: Intent?): IBinder? {
            return object : AidlInterface.Stub() {
                override fun getName(): String {
                    return "文川雪"
                }
            }
        }
    }
    

    (三)注册服务

    <service android:name=".AidlService">
                <intent-filter>
                    <action android:name="guozengjie" />
                </intent-filter>
     </service>
    

    B应用

    (一)复制AIDL文件
    将A应用的AIDL文件以及所在的文件夹复制到B应用,包名一样
    (二)绑定服务

     bindService(Intent().apply {
                `package` = "club.guozengjie.jetpack"
                action = "guozengjie"
            }, object : ServiceConnection {
                override fun onServiceDisconnected(name: ComponentName?) {
                }
    
                override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
                    val aidlInterface = AidlInterface.Stub.asInterface(service)
                    Toast.makeText(this@MainActivity, aidlInterface.name, Toast.LENGTH_LONG).show()
                }
            }, BIND_AUTO_CREATE)
    

    相关文章

      网友评论

          本文标题:AIDL简单示例

          本文链接:https://www.haomeiwen.com/subject/ezbddhtx.html