我正在开发我的第一个 android 应用程序,由于我的代码很快变得一团糟,我决定遵循 MVP 模式。
我的应用程序分为视图(片段)、演示者和合同(与视图及其演示者将用于通信的方法的接口)。
我的问题是我有一个包含用户位置字段的表单,我使用 Google 位置 API 检索该字段。我有一个 LocationHelper 类,它负责检查/询问权限、构建 google API 客户端、获取位置等。
但是,我不知道将使用此类的代码放在哪里:我的第一种方法是在演示器中实例化它,因为它比 UI 内容更多的是业务逻辑,但是许多方法需要调用者活动作为参数。例如构建 Google API 客户端:
mGoogleApiClient = new GoogleApiClient.Builder(context)
.addConnectionCallbacks((GoogleApiClient.ConnectionCallbacks) current_activity)
.addOnConnectionFailedListener((GoogleApiClient.OnConnectionFailedListener) current_activity)
.addApi(LocationServices.API).build();
或位置设置请求:
status.startResolutionForResult(current_activity,REQUEST_CHECK_SETTINGS);
但是,根据我在 MVP 中的理解,演示者应该没有上下文/android 代码。在这种情况下,最佳做法是什么?