从应用程序代码中的任何位置调用startSerice()

时间:2014-03-29 18:47:56

标签: android android-intent

我想自动将一些精心设计的代码插入目标应用代码的任何可能部分。这个精心设计的代码包含一个“context.startService()”,用于与另一个应用程序的远程服务联系。我如何自动获取此上下文实例,以便我可以从应用程序代码中的任何位置调用startService()?

提前多多感谢。任何投入都受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望从代码库中的任何位置启动服务,而不需要传递上下文对象。下面的解决方案是一种方法,但请查看this post以更好地理解为什么这不总是最佳解决方案。

创建一个从Application:

扩展的类
import android.app.Application;

public class MyApplication extends Application {

  private static Application sInstance;

  public MyApplication() {
      sInstance = this;
  }

  public static Application getInstance() {
      return sInstance;
  }
}

这将使您可以访问应用程序的上下文,以便您可以从任何地方启动服务。

现在代码的某些部分:

void foo() {
    MyApplication.getInstance().startService(new Intent(MY_SERVICE));
}

答案 1 :(得分:0)

创建一个新方法,获取您的上下文,然后使用所述上下文调用您的服务,然后调用该方法。

不应该更改你的代码......