Android开发中 在Activity中 如何实时监听 Service 中某个变量的变化?
5个回答
展开全部
举个例子你会理解的更快: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里瞅瞅,看了之后心里才踏实
)
如果你点了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里瞅瞅,看了之后心里才踏实
)
展开全部
service里的变量变化了,可以发一个消息给主UI,消息里面带上数据,主UI再做出相应的动作。
强烈指责“杭翠波”,把我之前 回答别人的问题 的答案据为己有,然后贴在这
强烈指责“杭翠波”,把我之前 回答别人的问题 的答案据为己有,然后贴在这
追问
您好,用广播发信息给主UI,和用意图发消息。哪个更合适? 求教 谢谢
追答
广播其实也是通过把东西装在inten里发送的。广播用起来比较麻烦,还得注册等等的工作,我是不愿意用,但是想捕获系统的广播(开机,电量等)还是必须用的。我上面说的是Handler和Message,这个用着比较简单方便在service里new一个message,把数据什么的装进去,发给主UI的Handler(这个Handler是主UI的成员,不用担心出现子线程操作主UI的问题),主UI接到消息,吧东西拿出来就OK了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过观察者来监听变化,也可以主动通知
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
service里的变量变化了,可以发一个消息给主ui,消息里面带上数据,主ui再做出相应的动作。
广播其实也是通过把东西装在inten里发送的。广播用起来比较麻烦,还得注册等等的工作,我是不愿意用,但是想捕获系统的广播(开机,电量等)还是必须用的。我上面说的是Handler和Message,这个用着比较简单方便在service里new一个message,把数据什么的装进去,发给主UI的Handler(这个Handler是主UI的成员,不用担心出现子线程操作主UI的问题),主UI接到消息,吧东西拿出来就OK了。
广播其实也是通过把东西装在inten里发送的。广播用起来比较麻烦,还得注册等等的工作,我是不愿意用,但是想捕获系统的广播(开机,电量等)还是必须用的。我上面说的是Handler和Message,这个用着比较简单方便在service里new一个message,把数据什么的装进去,发给主UI的Handler(这个Handler是主UI的成员,不用担心出现子线程操作主UI的问题),主UI接到消息,吧东西拿出来就OK了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要支持一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询