如何在Android中从非Activity类调用服务方法

7

1
你只需要一个上下文来绑定服务。这个上下文可以是一个活动、一个服务或一个应用程序。 - njzk2
我没有以下方法的实现:bindService,unbindService。 - Elad Benda
1
bindService是Context的一个方法。你需要一个Context来使用bindService。 - njzk2
我明白了。有什么建议的解决方法吗?创建一个虚拟上下文成员?获取应用程序的上下文? - Elad Benda
1
你的类需要继承android.content.ContextWrapper类,在其中实现bindServiceunbindServicestartService方法,然后可以从你的扩展类中使用它们。 - Eido95
1个回答

4
按照与从Activity中获取/传递实例相同的方式,只需获取/传递content活动的实例。
假设您有MyActivity类和OtherClass类。
所以你在OtherClass中运行。
 public class OtherClass {

    Context mContext;

    public void init(Context context){
      mContext = context;
    }
    ...

mContext.startService(new Intent(mContext, SomeService.class)); 

[编辑]

针对您的情况:

Intent intent = new Intent(mContext, LocalService.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);

请查看此处的文档,其中涉及IT技术相关内容。

我没有以下方法的实现:bindService、unbindService - Elad Benda
我不喜欢使用那些方法,但是它们属于同样的概念。 - Maxim Shoustin
但我是从Android开发官方网站上获取的。那还有什么其他方式呢? - Elad Benda
你可以在以下网址找到关于如何在Android中启动服务的信息:https://dev59.com/RG445IYBdhLWcg3wpLx_ - Maxim Shoustin
1
但我不想启动服务。我想绑定一个正在运行的服务。 - Elad Benda
1
如果我的类没有继承Context,那么你提到的bindService问题是否可以解决?我真的需要操作mContext成员吗? - Elad Benda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接