- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Robospice 来管理我的 API,我想在我的登录屏幕上实现一项功能,该功能允许更改将在我的应用程序中使用的服务器 URL。
在这个登录屏幕 Activity 中,我有不同的 editText 字段:用户名、登录名和 url(服务器)以及一个登录按钮。
我已经实现了 m Robospice 服务:
public class MyRetrofitService extends RetrofitGsonSpiceService {
public static final String BASE_URL = "https://myUrl.com";
public static final String PREF_FILE_NAME = "PrefFile";
public static final String PREF_USERNAME = "username";
public static final String PREF_PASSWORD = "password";
public static final String PREF_URL = "url";
@Override
public void onCreate() {
super.onCreate();
addRetrofitInterface(MyInterface.class);
}
@Override
protected String getServerUrl() {
// SharedPreferences return my current url saved by the user
String serverUrl = getApplicationContext().getSharedPreferences(PREF_FILE_NAME,Context.MODE_PRIVATE).getString("url",BASE_URL);
// I want to change this value
return serverUrl;
}
}
这是我的登录 Activity :
public class WelcomeActivity extends Activity {
public SpiceManager spiceManager = new SpiceManager(MyRetrofitService.class);
@Override
protected void onStart() {
super.onStart();
spiceManager.start(this);
}
@Override
protected void onStop() {
super.onStop();
spiceManager.shouldStop();
}
@Override
protected void onCreate(Bundle savedInstanceState){
// Initialise UI + sharedPreference
....
}
View.OnClickListener loginButtonListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// get data from UI EditText
setUrl(urlAddress.getText().toString())
login(usersname.getText().toString(), password.getText().toString());
}
};
public void setURL(String url) {
// Save login details in sharedPreferences
Auxiliar.editor.putString(MyRetrofitService.PREF_URL, url);
Auxiliar.editor.putString(MyRetrofitService.PREF_USERNAME, usersname.getText().toString());
Auxiliar.editor.putString(MyRetrofitService.PREF_PASSWORD, password.getText().toString());
Auxiliar.editor.commit();
Intent myservice = new Intent(this, MyRetrofitService.class);
stopService(myservice);
spiceManager.shouldStop();
spiceManager = new SpiceManager(MyRetrofitService.class);
spiceManager.start(getBaseContext()); // at this point should trigger getServerURl() in my RobospiceService but it doesn't
}
private void login() {
LoginService loginRequest = new LoginService(username, password);
spiceManager.execute(loginRequest, new HTTPRequestListener());
}
}
所以我正在做的是停止我的 SpiceManager 服务并重新启动此服务以强制触发 MyRetrofitService 类中的此 getServerURL 方法并更改 url。
我检查了一下,这个服务真的停止了,然后又重新启动了,但它没有触发 getServerURl() 来更改这个 url。
我做错了什么吗?您是否有更改此 URL 并保存新 URL 的想法?
最佳答案
RetrofitSpiceService
不是为满足这样的要求而设计的(有关详细信息,请参见代码)。
我建议覆盖 getRetrofitService()
方法并提供一个实现,该实现将为每个不同的服务器 URL 构建一个单独的 RestAdapter
或实现您自己的 RetrofitSpiceService
与现有实现类似,但可满足您的需求。
关于android - Robospice 配置服务器 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31697929/
如何同步执行 RoboSpice 请求?是否可以?我想在 IntentService 中使用 RoboSpice。 编辑: 有时需要同步执行一些东西,例如在服务中。在我最近的项目中,我必须对一些不同类
当我尝试运行 Robospice Retrofit 示例代码时,出现此错误。 java.lang.RuntimeException: Impossible to start SpiceManager
出于某种原因,从 Robospice 的缓存中拉回缓存对象始终为空。我做错了什么吗? getSpiceManager().execute(cardRequest, Card.class.getName
只要我停留在同一个 fragment 中,缓存就可以正常工作。但是,一旦我将应用程序切换到后台,然后在 onResume() 上重新加载数据,缓存就不再有效,并且建立了网络连接。 这是我的代码: pr
我计划使用 RoboSpice + OrmLite 进行数据缓存,我希望我的应用程序可以离线工作并使用缓存的数据。我是 RoboSpice 的新手。 我想实现以下案例:如果用户有互联网连接,则每次从服
我有一个这样的 JSON: {"meta": {...}, "objects": [{...}, {...}]} 但问题是如何构造POJO类。示例中只有一个使用简单 JSON 的示例。 我试过这样的:
我是 RoboSpice 的新手.我正在尝试上传文件。但是我得到了这个错误: 04-02 17:47:31.151: E//RequestProcessor.java:234(11021): org
看看LruCacheObjectPersister.java ,这是一个基于 Android LRUCache 的内存中对象持久化器。我想扩展这个基类以在内存中缓存字符串或位图旁边的任何 pojos
我们使用带有 okhttp 的 Robospice 1.4.12。除了在用户点击主页按钮然后返回 Activity 时从请求中获取结果外,一切正常。 示例:我们发出一个请求,然后按下主页按钮,我们等待
我开始将 robospice 用于必须在连接性不断变化的地区运行的应用程序。 我如何实现 robospice 在网络中断时自动返回缓存数据? 谢谢本 最佳答案 我根本没有使用过 Robospice。但
有人可以告诉我如何在我的“RequestResult.java”中使用 RoboSpice 进行动态映射吗? 我的 JSON 看起来像这样: "result": [ { "attr
我已经成功地创建了一个 Retrofit API Rest 客户端进行 GET 和 POST 调用,并将其合并到 Robospice 作为后台服务。 但是,我希望 Robospice 服务连接到数据库
我正在尝试使用这个 robospice-retofit example 进行一些单元测试.问题是当我调用 loadDataFromNetwork() 方法时出现一些 NullPointerExcept
我设法实现了 robospice (GoogleHttpClientSpiceService) 示例,它可以正常工作 - 它成功地转到服务器,获取数据并将其存储在缓存中。如果 Activity 未处于
我正在尝试使用以下库来开发我的应用程序。 Robospice Gson 和 Spring for android 为此,在我的 gradle 文件中,我添加了以下依赖项 compile 'com.oc
我将 Robospice 与 Retrofit ans ORMLite 模块一起使用。改造部分工作良好。我有用于改造的城市模型: 城市.java: public class City { pu
我在 robospice 中使用 spring android。我需要用 get 请求放置 header ,所以我使用了 exchange() 方法。代码没有错误但没有获取任何东西 public ML
如何检查 robospice 是否加载了一些任务?有方法 void addListenerIfPending()。如果该方法返回 bool 值以检查我是否应该在重新创建后将 Activity 中的进度
我不想达到下一个目标。 取决于json 内容desside put 或不将数据放入Robospice Cache。有时从服务器返回的数据无效。例如,我们的授权 token 关闭时间。所以我们不应该缓存
我正在使用 Robospice 来管理我的 API,我想在我的登录屏幕上实现一项功能,该功能允许更改将在我的应用程序中使用的服务器 URL。 在这个登录屏幕 Activity 中,我有不同的 edit
我是一名优秀的程序员,十分优秀!