Android跨进程共享view,在Android项目中使用RemoteViews实现跨进程更新界面

本文介绍了如何在Android项目中使用RemoteViews实现跨进程更新界面。通过创建RemoteViews,设置点击事件,并利用AIDL进行进程间通信,成功实现在不同进程的Activity之间更新UI。
摘要由CSDN通过智能技术生成

在Android项目中使用RemoteViews实现跨进程更新界面

发布时间:2020-11-21 17:20:21

来源:亿速云

阅读:104

作者:Leah

在Android项目中使用RemoteViews实现跨进程更新界面?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

实现效果图

在同一个应用中有两个Activity,MainActivity和Temp2Activity,这两个Activity不在同一个进程中。

9ef0266f523c960afc1c873bbec57de2.png

现在需要通过Temp2Activity来改变MainActivity中的视图,即在MainActivity中添加两个Button,也就是实现跨进程更新UI这么一个功能。

在MainActivity里点击“跳转到新进程ACTIVITY”按钮,会启动一个新进程的Temp2Activity,我们先点击“绑定服务”,这样我们就启动了服务,再点击“AIDL更新”按钮,通过调用handler来实现跨进程更新UI,点击返回,我们发现MainActivity页面中新添加了两个按钮,并且按钮还具有点击事件。

d7aa7b477f5252f038baa49e3b1a313b.gif

三、核心代码

IremoteViewsManager.aidl

里面提供了两个方法,一个是根据id更新TextView里面的内容,一个是根据id添加view视图

// IremoteViewsManager.aidl.aidl

package com.czhappy.remoteviewdemo;

interface IremoteViewsManager {

void addRemoteView(in RemoteViews remoteViews);

}

RemoteViewsAIDLService.Java

package com.czhappy.remoteviewdemo.service;

import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.Bundle;

import android.os.IBinder;

import android.os.Message;

import android.os.RemoteException;

import android.widget.RemoteViews;

import com.czhappy.remoteviewdemo.IremoteViewsManager;

import com.czhappy.remoteviewdemo.activity.MainActivity;

/**

* Description:

* User: che

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值