我正在使用改造2和OkHttp3从服务器请求数据.我刚刚添加了一个离线缓存代码,但它没有按预期工作.我收到错误"无法解析主机"<>":没有与主机名关联的地址."
当它试图从缓存中获取检索数据时(没有互联网连接时)会发生这种情况.下面是一段代码片段.
public static Interceptor provideCacheInterceptor() {
return new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
// re-write response header to force use of cache
CacheControl cacheControl = new CacheControl.Builder()
.maxAge(2, TimeUnit.MINUTES)
.build();
return response.newBuilder()
.header(CACHE_CONTROL, cacheControl.toString())
.build();
}
};
}
public static Interceptor provideOfflineCacheInterceptor() {
return new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (!hasNetwork) {
CacheControl cacheControl = new CacheControl.Builder()
.onlyIfCached()
.maxStale(7, TimeUnit.DAYS) …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Glide 在我的应用程序中显示图像。现在我想知道 Glide 存储从 url 下载的缓存图像的位置。
我正在使用下面的代码来显示图像。
Glide.with(mContext)
.load(mData.get(position).getImage())
.centerCrop()
.override(300, 300)
.placeholder(R.drawable.default_small)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(holder.ivCapturedImage);
Run Code Online (Sandbox Code Playgroud) 我想用两种不同的文字大小设置TabLayout的标题.如下图所示.或者反过来实现这一目标!
我尝试过使用SpannableString,如下所示.这个代码片段在for循环中直到5!
SpannableString mSpannableString= new SpannableString(s);
mSpannableString.setSpan(new RelativeSizeSpan(2f), 0,5, 0); // set size
mSpannableString.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);// set color
mTabLayout.getTabAt(i).setText(mSpannableString);
Run Code Online (Sandbox Code Playgroud)
但正如CommonaSware所提到的,setText()并没有采用丰富的内容!
我知道这已被问过很多次了,但却无法解决这个问题.
Main Project Gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
Run Code Online (Sandbox Code Playgroud)
App Module Gradle File
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "com.something"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以问题在于它将构建工具版本放在何处,24.0.3
因为我已将其设置为25.0.1
只是困惑!!
android build-tools gradle build.gradle android-gradle-plugin
android ×4
build-tools ×1
build.gradle ×1
caching ×1
gradle ×1
okhttp ×1
okhttp3 ×1
retrofit2 ×1
text-size ×1