java - 如何使用 Android 中的 MVP 模式从我的交互器启动服务?

标签 java android service mvp

我遵循的模型 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/

相关文章:

java - 如何在 Android 中读取带有 url 的 PDF 文件

java - 启动 jboss windows 服务以从外部可见

java - Iterator<T> 返回对象

java - 为什么我在 MAC OS X 10.11 上看不到 JAVA_HOME 路径?

java - 以编程方式更改资源 getString()

java - 将 Tomcat(使用 Liferay)配置为 2012R2 服务时出现异常

c# - Windows 服务不执行代码

Java SQL 结果集检索顺序不正确

java - 在状态 abb 之间添加逗号。和地址列表中的邮政编码

android - Cordova Hook 和访问build设置