在我与同事一起开发的当前应用程序中,我们使用IntentServices和Volley调用来处理RESTful API网络请求.它只是简单的JSON字符串数据和一些小图像.
我对那些在处理网络请求方面经验丰富的问题是这样的:那里有更合适或更清洁的东西吗?
根据我的理解,使用IntentService的优势在于它在主线程的后台运行,并且通常是Android OS杀死的最后一件事.缺点是IntentServices按顺序运行.
我一直在阅读很多关于RxJava和Retrofit的内容,并且觉得我们的需求可以通过这种组合得到更好的服务.改造本身就足够了,但我真的很感激第三方洞察力.
android android-networking rx-java retrofit android-intentservice
我目前遇到了一个相对复杂的基于 ConstraintLayout 的设计实现的复杂情况。
该设计是一排项目,如上所示。这些行是静态的,并根据某些数据相关条件显示/隐藏。
我遇到的问题是,我还没有找到一种可靠的方法来正确包含布局中的分隔线/屏障之间的每一行。
正如您在上图中看到的,我的约束布局不符合预期的障碍/分隔线。我在下面包含了此布局的 XML。
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:id="@+id/timeIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_clock"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/timeTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="#FF354052"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@id/statusTextView"
app:layout_constraintStart_toEndOf="@+id/textGuideline"
app:layout_constraintTop_toTopOf="parent"
tools:text="4:20 PM" />
<com.weedmaps.driver.android.view.StatusTextView
android:id="@+id/statusTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="4dp"
android:paddingEnd="27dp"
android:paddingStart="27dp"
android:paddingTop="4dp"
android:textAllCaps="true"
android:textSize="12sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:background="@color/accepted_blue" />
<android.support.constraint.Barrier
android:id="@+id/headerDividerTopBarrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="top"
app:constraint_referenced_ids="headerDivider" />
<!-- / end delivery status section -->
<android.support.constraint.Barrier
android:id="@+id/deliveryStatusSectionBottomBarrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="statusTextView, timeTextView, timeIcon" />
<View
android:id="@+id/headerDivider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FFE6EAEE"
app:layout_constraintTop_toBottomOf="@id/deliveryStatusSectionBottomBarrier"
app:layout_constraintBottom_toTopOf="@id/destinationInfoSectionTopBarrier" /> …Run Code Online (Sandbox Code Playgroud)