我想自动将一些精心设计的代码插入目标应用代码的任何可能部分。这个精心设计的代码包含一个“context.startService()”,用于与另一个应用程序的远程服务联系。我如何自动获取此上下文实例,以便我可以从应用程序代码中的任何位置调用startService()?
提前多多感谢。任何投入都受到高度赞赏。
答案 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)
创建一个新方法,获取您的上下文,然后使用所述上下文调用您的服务,然后调用该方法。
不应该更改你的代码......