Android 开发笔记

来源:互联网 发布:西门子300编程电缆 编辑:程序博客网 时间:2024/06/03 21:35

Android 开发笔记

记录Android开发过程中遇到的问题

  • Android SDK AsyncTask doInBackground 方法不能运行的问题

    突然发现AsyncTask().execute();不能执行了。
    原因:由于Android不同的版本中AsyncTask的行为不一致造成的。

    1.Donut (Android:1.6 API:4) 以前task是串行执行的,DonutGingerbread (Android:2.3 API:9)版本之间task是并行执行的。从 Honeycomb (Android:3.0 API:11)开始,task又改回了串行执行,不过SDK提供了一个新的用于并行执行的方法AsyncTask().executeOnExecutor(Executor)

    解决方法:根据不同的版本选择不同的执行方法

    AsyncTask<Void,Void,Void> myTask = new AsyncTask<Void,Void,Void>() { ... };if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)   myTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);else   myTask.execute();
  • Android 中使用图片加载库Glide 遇到的问题
  • 使用Glide设置图片的ImageView不能设置Tag
  • You must not call setTag() on a view Glide is targeting
    解决方法:

    在 src/main/values/目录中新建一个 ids.xml 文件:
    添加一条 id数据:
    <item type="id" name="glide_tag" />
    然后在App中的onCreate方法中

    public class App extends Application {  {         super.onCreate();         ViewTarget.setTagId(R.id.glide_tag);  }}
0 0
原创粉丝点击