假设我有一个活动是一个列表。当此活动启动时它会调用服务。该服务将执行后台操作 - 下载,解析并填写列表。服务如何与其活动通信?服务如何调用启动该服务的活动中的方法?
我的问题是:服务如何与活动通信? 如何从服务中调用活动中的方法? (我是新来的OOP)
服务启动这样的:
hello_service = new Intent(this, HelloService.class);
startService(hello_service);
我的一个服务做的事情就是下载和分析XML。之后,它需要填写一个列表!所以,我想将解析的内容传递回Activity,然后在Activity中调用一个方法来填充该列表。
“将活动对象设置为服务”是什么意思? – TIMEX 2010-02-17 17:50:47
在服务中,您可以像下面这样创建静态方法: public static void setMainActivity(YourActivityType activity){ YOUR_ACTIVITY = activity; } 然后,在调用startService()方法之前,只需从您的活动调用YourService.setMainActivity(this)。 – 2010-02-17 23:05:39
谢谢。它意义重大。但是线程安全呢?为什么这不安全? – TIMEX 2010-02-18 00:59:42