Trước tiên, tôi sẽ cho rằng phiên bản api tối thiểu của bạn thấp hơn api mà bạn định gọi, bởi vì đó là nơi mà những loại chú thích này có ý nghĩa
@RequiresApi(Build.VERSION_CODES.N_MR1)
public void hello() { // codes that call system apis introduced in android N_MR1}
Khi một phương thức được chú thích bằng điều này, bất cứ lúc nào bạn gọi phương thức đó, bạn sẽ nhận được một cảnh báo màu đỏ đẹp mắt rằng lệnh gọi này yêu cầu phiên bản api cao hơn phiên bản api tối thiểu của bạn, nhưng nó không ngăn bạn biên dịch và xây dựng apk của mình, nó sẽ chỉ gặp sự cố trên các phiên bản Android thấp hơn khi tôi thử nghiệm nó.
@TargetApi
Điều này không giúp ích gì cả, nó ngăn chặn các cảnh báo gọi apis mới trong phương thức của bạn, nhưng khi bạn gọi phương thức này từ một nơi khác, không có cảnh báo xơ vải nào cả và bạn vẫn có thể xây dựng và cài đặt apk của mình chỉ để đáp ứng sụp đổ khi phương thức đó được gọi.