2014-10-31 52 views
3

我有一個Android庫,我希望將一些資源標記爲已棄用。 Drawables,維度,持續時間...我讀了一些地方,我可以將deprecated =「deprecated」添加到資源定義,但它似乎沒有做任何事情。我可以將我的android項目中的資源標記爲棄用嗎?

在Android中R您可以看到的東西,如

@java.lang.Deprecated 
 
public static final int autoText = 16843114;

我試圖產生通過編輯durations.xml,values.xml,甚至public.xml類似的東西。 ..

謝謝!

+0

我認爲這是一個有趣的問題,但如果不可能,它不會讓我感到驚訝。我唯一能想到的是在目錄名稱中添加限定符,但似乎沒有任何限定符,至少在文檔中沒有。 – wvdz 2014-10-31 21:59:27

回答

3

簡答:不可能。

@deprecated標籤是由內而外的評論Android的源使用,因爲它可以在fw/base core/res/values/attrs.xml(見行3427自動圖文集是在原崗位簡稱)可以看出,在fw/base core/res/values/public.xml並在整個項目中其他地方,但它似乎用於構建應用程序的構建工具只是跳過所有註釋,這意味着註釋標記在流程中也會被跳過,從而導致此方法失敗。基於Android源棄用註釋

用法示例:

<!-- {@deprecated Use foobar instead.} --> 
<string name="foo">abc</string> 
<string name="foobar">abcd</string> 
+0

啊,謝謝!你有沒有任何工作經驗?因爲到目前爲止它似乎對我有所不同,我想知道它是否應該不僅僅是一個評論... – 2014-10-31 22:09:30

+0

我沒有必要使用這個我自己 - 就像Android的方式源做它。現在看着它,似乎它不適合我... – 2014-10-31 22:24:22

+0

非常感謝。這很不幸,我得到了現在不受支持的氛圍。 – 2014-10-31 22:26:33

1

我要做的就是簡單地添加一個TODO聲明。它不會標記資源,但doc關鍵字TODO確實在Git中顯示,並在排水溝中顯示爲標記。希望這些警告足以讓您和其他人使用它。

但並非總是如此。正如我們所知,@Deprecated實質上是一個止損點,直到確實被移除爲止,並且代碼被正確清理。

下面是一個我不再使用(並且想要@Deprecate)的shape.xml文件的例子。

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    Border around card elements. For now this is used only within the 
    cards of the Questionnaire RecyclerView. 

    TODO: This file is obsolete. Use CardView instead. 
--> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
    <stroke 
     android:width="@dimen/tiny_card_margin" 
     android:color="@color/colorPrimaryDark" /> 
    <solid 
     android:color="@android:color/white" /> 
    <corners 
     android:radius="4dp" /> 
</shape> 
+0

這可行,但這有點破解,並且阻止你正確地管理你的TODO ......只要你在其他地方管理一個棄用過程,並且將在下一次API重大更改中刪除此代碼和TODO,這將是可以接受的。 .. – 2018-02-14 22:29:56

+0

@ jesses.co。tt是的,它肯定會將TODO的正常定義擴展到比我們通常所想的要大得多的時間表。我很好奇你是如何管理其他地方的棄用流程的。 – 2018-02-19 22:27:55

相關問題