android开发分享有什么更好的:@SuppressLint或@TargetApi?

我在我的应用程序有关StrictMode问题,并添加了基本禁用StrictModeHelper的代码片段。 然而,Lint现在抱怨setThreadPolicy()并build议添加

 @SuppressLint 'NewApi' 

要么

 @TargetApi(Build.VERSION_CODES.GINGERBREAD) 

到视图的onCreate()事件。

哪种方法是最好的..或者他们基本上是一样的?

    我在我的应用程序有关StrictMode的问题,并添加了代码片段,基本上禁用了StrictModeHelper

    请修复networking错误。

    哪种方法是最好的..或者他们基本上是一样的?

    @TargetApi@SuppressLint具有相同的核心效果:它们抑制了Lint错误。

    不同之处在于,通过@TargetApi ,你可以通过参数声明你在代码中处理了什么API级别,这样如果你稍后修改方法来引用比API级别更新的API @TargetApi

    例如,假设不是阻止StrictMode关于networking错误的抱怨,而是尝试解决在较新版本的Android上被序列化的AsyncTask问题。 在代码中有这样的方法来select新设备上的线程池,并在旧设备上使用默认的multithreading行为:

      @TargetApi(11) static public <T> void executeAsyncTask(AsyncTask<T, ?, ?> task, T... params) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params); } else { task.execute(params); } } 

    @TargetApi(11)意味着,如果林特检测到我使用的东西比我的android:minSdkVersion ,但直到API级别11,林特不会抱怨。 在这种情况下,这是有效的。 但是,如果我修改了这个方法来引用一些直到API Level 14之前没有添加的东西,那么Lint错误会再次出现,因为我的@TargetApi(11)注解说我只修复了API Level 11和以上所述,而不是API等级14及以上。

    使用@SuppressLint('NewApi') ,我将失去任何 API级别的Lint错误,无论我的代码是什么引用以及我的代码是如何设置的。

    因此, @TargetApi是首选的注释,因为它允许您以更精细的方式告诉构build工具“好的,我解决了这类问题”。

      以上就是android开发分享有什么更好的:@SuppressLint或@TargetApi?相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/516680.html

      (0)
      上一篇 2020年12月3日
      下一篇 2020年12月3日

      精彩推荐