TaskDescription中的TaskDescription(String,Bitmap,int)已弃用

时间:2018-10-08 21:44:57

标签: java android gradle android-gradle lint

我的 Java 代码包含以下几行:

Window window = getWindow();
View decor = window.getDecorView();
Context context = decor.getRootView().getContext();
Resources resources = context.getResources();

...

ActivityManager.TaskDescription description;

if (android.os.Build.VERSION.SDK_INT >= 28)
    description = new ActivityManager.TaskDescription(
            resources.getString(R.string.app_name), 
            R.drawable.app_icon,
            ContextCompat.getColor(this, R.color.colorTaskBar));
else
    //noinspection deprecation
    description = new ActivityManager.TaskDescription(
            resources.getString(R.string.app_name), 
            getBitmap(this, R.drawable.app_icon),
            ContextCompat.getColor(this, R.color.colorTaskBar));

setTaskDescription(description);

我的项目 build.gradle 包含以下几行:

allprojects {
    repositories {
        google()
        jcenter()
    }
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

由于我的build.gradle文件中有-Xlint:deprecation选项,因此我可以在代码中找到弃用的地方。

重建项目时,收到以下警告:

  

[deprecation] TaskDescription中的TaskDescription(String,Bitmap,int)已弃用

...它指向

的使用
@Deprecated
public TaskDescription(String label, Bitmap icon, int colorPrimary)

嗯,我知道这一点,正如您在我的Java代码顶部看到的那样,我检查版本并使用

public TaskDescription(String label, @DrawableRes int iconRes, int colorPrimary)

对于API 28+,因为此版本的TaskDescription仅可从API 28获得。


那么我应该怎么做才能消除警告?我想清洁我的代码,所以我想重新编码此部分以使其100%正确?我的代码有什么问题?

0 个答案:

没有答案