Android开发中 在Activity中 如何实时监听 Service 中某个变量的变化?

2024-11-24 15:41:00
推荐回答(5个)
回答1:

举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item。
如果你点了b这个item。如下:

public void onItemClick (AdapterView parent, // parent相当于listview Y适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X - -、
View view, // view是你点b item的view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件
int position, // position是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的)
long id // id是b在listview Y里的第几行的位置(很明显是第2行),大部分时候position和id的值是一样的,如果需要的话,你可以自己加个log把position和id都弄出来在logcat里瞅瞅,看了之后心里才踏实
)

回答2:

service里的变量变化了,可以发一个消息给主UI,消息里面带上数据,主UI再做出相应的动作。

强烈指责“杭翠波”,把我之前 回答别人的问题 的答案据为己有,然后贴在这

回答3:

可以通过观察者来监听变化,也可以主动通知

回答4:

service里的变量变化了,可以发一个消息给主ui,消息里面带上数据,主ui再做出相应的动作。
广播其实也是通过把东西装在inten里发送的。广播用起来比较麻烦,还得注册等等的工作,我是不愿意用,但是想捕获系统的广播(开机,电量等)还是必须用的。我上面说的是Handler和Message,这个用着比较简单方便在service里new一个message,把数据什么的装进去,发给主UI的Handler(这个Handler是主UI的成员,不用担心出现子线程操作主UI的问题),主UI接到消息,吧东西拿出来就OK了。

回答5:

要支持一下