Android 如何从类运行服务?

Android 如何从类运行服务?,android,service,android-activity,Android,Service,Android Activity,我有一门课是这样的: 公共类ExpandableListAdapter扩展了BaseExpandableListAdapter{ 我想从这个类运行服务。但是我知道,服务只能从Activitys运行。那么解决方案是什么呢 如何启动服务并从另一个类控制它 但正如我所知,服务只能通过活动运行 不是这样。为了运行服务,您只需要一个上下文,它通常是对您的活动的引用 因此,在ExpandableListAdapter中,您只需确保构造函数接收活动的实例: public ExpandableListAdapt

我有一门课是这样的:

公共类ExpandableListAdapter扩展了BaseExpandableListAdapter{

我想从这个类运行服务。但是我知道,服务只能从
Activitys
运行。那么解决方案是什么呢

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

但正如我所知,服务只能通过活动运行

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

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

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

// somewhere else
mContext.startService(theIntent);

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

BaseExpandableListAdapter
没有
getContex
方法。之后我编辑了我的答案我已经想到了这一点,你可以像对待大多数适配器一样,在构造函数中传递上下文,并将其存储为全局变量。