0

我有这样的课:

public class ExpandableListAdapter extends BaseExpandableListAdapter {

我想从这个类运行一个服务。但据我所知,服务只能从Activitys. 那么解决方案是什么?

如何启动服务并从另一个类控制它?

4

2 回答 2

1

但据我所知,服务只能从 Activity 运行

这不是真的。为了运行服务,您只需要一个上下文,这通常是对您的活动的引用。

因此,在 ExpandableListAdapter 中,您只需确保构造函数接收到您的活动实例:

public ExpandableListAdapter(Context context){
    mContext = context;
}

// somewhere else
mContext.startService(theIntent);
于 2012-04-18T18:04:10.597 回答
0

大多数适配器都有上下文,因此您可以调用 getContext() 来返回上下文。这个适配器没有上下文,所以你应该有一个自定义构造函数,它接受一个上下文并调用它的 super。使用您传入的上下文,您可以像在活动中一样调用startService(Intent intent) 。

于 2012-04-18T18:04:24.053 回答