我决定检查如果为不包括支持库的弃用方法运行应用程序会发生什么。我预计它必须崩溃。我对我设备的Android 6.0(API23)平台使用了弃用的getResources().getColor()
方法。
为什么不崩溃? (这就像以后的平台中的支持库,以支持早期的支持库)
MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getResources().getColor(R.color.colorAccent);
}
}
的build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "scanandbuy.com"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
//compile 'com.android.support:appcompat-v7:25.3.1'
//compile 'com.android.support:design:25.3.1'
}
答案 0 :(得分:1)
为什么不崩溃?
为什么会这样?
“弃用”并不意味着“会崩溃”。 “已弃用”表示“我们希望您在替换存在的API级别上强烈考虑使用替换”。
有时,弃用的方法也会有行为更改。通常,这是出于隐私或安全原因,通常,改变的行为不是崩溃,而是更温和的东西(例如,返回空结果集而不是之前得到的结果)。检索颜色资源值没有我能想到的任何隐私或安全问题。