我遵循的模型 View 展示器 (MVP) 模式类似于 Antonio Leiva 在此处找到的示例:antoniolg/github .
我一直在研究它,我想知道如何从 interactor
层启动一个 service
。通常我一直将我的 retrofit
调用放在 interactor
中,但我想知道是否有办法从 interactor
启动服务,所以我可以改为在服务中运行我的 retrofit
调用。这里的问题是我没有运行服务的 Activity 上下文,如果我将上下文公开给 interactor
,这有点违背了 MVP 的目的。
我也不太确定这是否是一件好事(从交互器启动服务)。我当时正在考虑从 presenter
层开始服务,但我正在走向死胡同,我应该如何处理这个问题。
如果有办法解决这个问题,请帮助其他人?如果这不是一个好方法,请启发我。
最佳答案
定义类,例如 My App extends Application 并定义类似 getAppInstance 的方法返回 Application 对象,然后将此类的名称属性添加到 Manifest 中的 Applicqtion 标签,然后在您的用例中调用此方法以获取上下文对象并启动您的服务
public class MyApp extends Application {
private MyApp instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
@Override
public void onTerminate() {
super.onTerminate();
instance = null;
}
public MyApp getInstance(){
return instance;
}
}
关于java - 如何使用 Android 中的 MVP 模式从我的交互器启动服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34196781/