Android开发之跨进程通信-广播跨进程实现方法(附源码)
生活随笔
收集整理的這篇文章主要介紹了
Android开发之跨进程通信-广播跨进程实现方法(附源码)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
真的特別簡單,簡單概述下android的四大組件都可以跨進程。
?
Activity,廣播,服務,內容提供者都可以
先看下跨進程傳遞數據的效果圖
下面是兩個APP用于模擬跨進程
再看下跨進程效果,AIDL和廣播跨進程圖下面是
先看廣播怎么跨,特別簡單
發送端:直接在activity里面或者fragment都可以發送廣播即可
//跨進程方法二 廣播btSend2.setOnClickListener {val intent = Intent()//下面action需要與服務端APP清單文件里面的廣播配置的action字段保持一致intent.action = "com.xiayiye5.login.token2"intent.putExtra("login_access_token", "拿到的token為:" + etInput.text.toString().trim()) //如果是在fragment里面發送廣播需要拿到當前fragment的activity對象即可 //getActivity.sendBroadcast(intent)sendBroadcast(intent)}再看接收端的代碼:
新建一個接收數據局的廣播
package com.example.app_serverimport android.content.BroadcastReceiver import android.content.Context import android.content.Intent/*** 廣播接收跨進程APP數據* @author xiayiye5* @date 2021/11/29 9:43*/ class TakeTokenBroadCast : BroadcastReceiver() {companion object {const val action = "com.xiayiye5.login.token2"}override fun onReceive(context: Context?, intent: Intent?) {if (action == intent!!.action) { // val token = intent.getStringExtra("login_access_token") // Toast.makeText(context, token, Toast.LENGTH_LONG).show()//打開接收數據的activity即可,數據都在intent里面,在activity頁面直接取就好了intent.setClass(context!!, ServerActivity::class.java)context.startActivity(intent)}} }然后在清單文件配置下廣播接受者即可
<receiver android:name=".TakeTokenBroadCast"><intent-filter><!--下面的action配置需要與客戶端發送廣播的action保持一致--><action android:name="com.xiayiye5.login.token2" /></intent-filter></receiver>感謝原博主:博主直達
??如果看著比較復雜具體可以下載源碼查看:源碼直達
總結
以上是生活随笔為你收集整理的Android开发之跨进程通信-广播跨进程实现方法(附源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android开发之跨进程通讯-AIDL
- 下一篇: android sina oauth2.