android service getwindow(),怎样在android的service中调用Activity中的getWindow函数

本文介绍了如何在Android Service中启动下载任务并实时更新Activity中的UI进度条。通过Binder对象,Activity能获取Service实例,监听并更新下载进度。此外,还提及了使用回调接口实现Service主动通知Activity进度变化的可能性。
摘要由CSDN通过智能技术生成

匿名用户

1级

2015-03-09 回答

在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,我们一般在Activity中启动后台Service,通过Intent来启动,Intent中我们可以传递数据给Service,而当我们Service执行某些操作之后想要更新UI线程,我们应该怎么做呢?接下来我就介绍两种方式来实现Service与Activity之间的通信问题

通过Binder对象

当Activity通过调用bindService(Intent service, ServiceConnection conn,int flags),我们可以得到一个Service的一个对象实例,然后我们就可以访问Service中的方法,我们还是通过一个例子来理解一下吧,一个模拟下载的小例子,带大家理解一下通过Binder通信的方式

首先我们新建一个工程Communication,然后新建一个Service类

[java] view plain copy

package com.example.communication;

import android.app.Service;

import android.content.Intent;

import android.os.Binder;

import android.os.IBinder;

public class MsgService extends Service {

/**

* 进度条的最大值

*/

public static final int MAX_PROGRESS = 100;

/**

* 进度条的进度值

*/

private int progress = 0;

/**

* 增加get()方法,供Activity调用

* @return 下载进度

*/

public int getProgress() {

return progress;

}

/**

* 模拟下载任务&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值