Git Product home page Git Product logo

android-art-res's Issues

第10章 Android的消息机制,图10-1 Handler的工作过程

image
错误描述:图片内容不严谨,第一眼给我的感觉是图中的Handler实在Thead1创建的,那这张图片的内容就不对了。所以应该在图中明确标明hander是Thread2创建的handler,或者这个handler初始化的时候,调用的是Thread2的looper。

外部拦截,有点问题请教一下

当外层是recyleview的时候,item子view使用了HorizontalScrollViewEx外部拦截的时候,recyleview的点击和长按事件没办法响应了。

430页

文字部分的倒数2行:“如果不是主线程就直接抛出异常中止程序”

应该是 主线程才抛出异常吧?

第二章,binder连接池部分, 未unbindservice, 请问这种处理考虑是什么呢?

在实现作者的demo时,遇到如下问题:

退出activity时,未unbindservice会概率性出现如下报错信息:
在ondestroy中,加入unbindservice的处理后,无相关报错信息.
请问这种是情况和考虑是什么呢?可以帮忙解答下么,谢谢.

01-03 12:28:55.450 8840-8840/com.ting.scratch.binderdemo E/ActivityThread: Activity com.ting.scratch.binderdemo.MainActivity has leaked ServiceConnection com.ting.scratch.binderdemo.BinderPool$1@e9a8a7a that was originally bound here
android.app.ServiceConnectionLeaked: Activity com.ting.scratch.binderdemo.MainActivity has leaked ServiceConnection com.ting.scratch.binderdemo.BinderPool$1@e9a8a7a that was originally bound here
at android.app.LoadedApk$ServiceDispatcher.(LoadedApk.java:1376)
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1271)
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1462)
at android.app.ContextImpl.bindService(ContextImpl.java:1434)
at android.content.ContextWrapper.bindService(ContextWrapper.java:636)
at com.ting.scratch.binderdemo.BinderPool.connectBinderPoolService(BinderPool.java:69)
at com.ting.scratch.binderdemo.BinderPool.(BinderPool.java:49)
at com.ting.scratch.binderdemo.BinderPool.getInsance(BinderPool.java:56)
at com.ting.scratch.binderdemo.MainActivity$BinderRunnable.run(MainActivity.java:28)
at java.lang.Thread.run(Thread.java:761)

ContentProvider中定义的权限,本应用中使用是否不需要验证权限?

如定义权限如下:

<permission
        android:name="qingfengmy.developmentofart.provider"
        android:protectionLevel="normal" />

定义provider如下:

<provider
            android:name="._2activity.ContentProvider.BookProvider"
            android:authorities="qingfengmy.developmentofart.bookprovider"
            android:exported="true"
            android:permission="qingfengmy.developmentofart.provider"
            android:process=":provider" />

那么在当前应用的Activity中不需要添加如下权限,也可以调用provider的query方法。

<uses-permission android:name="qingfengmy.developmentofart.provider"/>

尽管Activity和provide不是同一进程,但是同一应用,同一应用就可以忽略provider的permission,是否如此?

RemoteView实时更新widget里的ImageView该如何实现

首先感谢主席,《安卓开发艺术探索》非常棒

现在遇到个问题,RemoteView在widget里使用时,我现在要实时旋转一个ImageView,该如何实现呢?

我看到你例子里讲解的是点击旋转图片用到的是setOnClickPendingIntent方法,如果实时更新该如何操作呢,谢谢!

第三章点击事件的结论,第五个怎么理解?

如果View不消耗ACTION_DOWN以外的其他事件,那么这个点击事件会消失,此时父元素的onTouchEvent并不会被调用,并且当前View可以持续收到后续事件,最终这些消失的点击事件会传递给Activity处理。

[勘误]3.1.4部分

Velocity小节,下面这句有误:

最后,当不需要使用它的时候,需要调用clear方法来重置并回收内存。

这里,只需要调用recycle()即可。通过源码可以知道,recycle()中已经调用了clear()方法。

/**
 * Return a VelocityTracker object back to be re-used by others.  You must
 * not touch the object after calling this function.
 */
public void recycle() {
    if (mStrategy == null) {
        clear();
        sPool.release(this);
    }
}

第二章的内容

第2章的内容的其实颇为抽象,建议有相同感受的读者可以试着挪到第11章之后阅读。

[error] P268 页中scale、rotate的pivotX、pivotY默认都为0,而不是view的中心点

已经过测试验证。P268 页中提到 View 动画,scale、rotate的pivotX、pivotY轴心点默认都为0,而不是view的中心点。

RotateAnimation 的构造函数

    public RotateAnimation(float fromDegrees, float toDegrees) {
        mFromDegrees = fromDegrees;
        mToDegrees = toDegrees;
       // 默认为0.0,也就是view的左上点坐标
        mPivotX = 0.0f;
        mPivotY = 0.0f;
    }

ScaleAnimation 的构造函数

    public ScaleAnimation(float fromX, float toX, float fromY, float toY) {
        mResources = null;
        mFromX = fromX;
        mToX = toX;
        mFromY = fromY;
        mToY = toY;
        mPivotX = 0;
        mPivotY = 0;
    }

关于ViewGroup的事件分发

书中146页第3部分写到 ViewGroup如果设置onTouchListener的话,onTouch会屏蔽掉onTouchEvent,这个不是绝对的吧,应该看onTouch的返回值,返回true才会屏蔽掉onTouchEvent。

事件分发

第三章事件分发外部拦截的部分在ACTION_DOWN里面有下面的判断:
if (!mScroller.isFinished()) {
mScroller.abortAnimation();
intercepted = true;
}
这个会导致你在切换前后滑动不管怎么滑动都是左右滑,感觉没必要加这个判断吧

“和”与“或”

任老师,书中130页,倒数第八行开始,“在滑动过程中,mScrollX的值总是等于View左边缘和View内容左边缘在水平方向的距离,而......”,这句话中的“和”如果能改成“或”,个人认为读者会更加清晰明白。

更新下代码

代码麻烦更新下AndroidStudio版本 毕竟升级环境好久了 书也出了好多了 但是代码还是eclipase的 希望作者看到!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.