如何从另一个类使用IntDef注释

时间:2015-06-05 10:23:21

标签: android android-support-library

我正在尝试使用@ScreenOrientation中的android.content.pm.ActivityInfo。它的声明:

@IntDef({
        SCREEN_ORIENTATION_UNSPECIFIED,
        SCREEN_ORIENTATION_LANDSCAPE,
        ...
})
@Retention(RetentionPolicy.SOURCE)
public @interface ScreenOrientation {}

如果我像这样使用它,编译器无法解决它:

public abstract class ActivityBase extends ActionBarActivity {

    @ScreenOrientation
    protected abstract int getPhoneOrientation();    
}

import android.content.pm.ActivityInfo.*;无济于事 @android.content.pm.ActivityInfo.ScreenOrientation也没有帮助。

我在gradle文件中有注释库

compile 'com.android.support:support-annotations:22.0.0'

是否有可能或者注释只是以某种方式隐藏?

1 个答案:

答案 0 :(得分:2)

注释确实是隐藏的 - 如果你看ActivityInfo(目前第313行): https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/content/pm/ActivityInfo.java

您会看到它上面有@hide注释,从而阻止我们在我们的应用中直接使用它。